Problems with namespace XML Parsing of ABAP PI 7.0 Integration Engine
Hi,
I discovered the following problem.
The customer sends a SOAP message with is forwarded through a SOAP Adapter in the integration engine.
The structure of the message is very simple:
<Envelope>
<Body>
<ORDERS05>...</ORDERS05>
</Body>
</Envelope>
The customer adds the namespace information a special way:
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope">
<Body>
<orders05 xmlns="">...</orders05>
</Body>
<Envelope>
Here the namespaces is declared in the first element. It should be inherited into all child elements. The 'orders05' should not have the namespace ' xmlns="http://schemas.xmlsoap.org/soap/envelope" ', therefore the namespace is overwritten with ' xmlns="" '. However I don't know if this is a correct xml statement, the SAP system did not understand this.
The integration throws an error which is stated in the message in the adapter engine:
2008-11-06 17:31:44 Fehler SOAPFault empfangen vom Integration Server. ErrorCode/Category: XIProtocol/ITEM_MISSING; Params: /@mustUnderstand, ST: ST_XMS_MSGHDR30_RM; AdditionalText: Attribut 'mustUnderstand' erwartet; ApplicationFaultMessage: ; ErrorStack: Das XML-Element /@mustUnderstand fehlt im SOAP-Message Header (SAP XI Extension) Attribut 'mustUnderstand' erwartet
2008-11-06 17:31:44 Fehler Fehler beim Übertragen der Message zum Endpunkt http://kas052.hauni.koerber.de:8036/sap/xi/engine?type=entry über die Verbindung SOAP_http://sap.com/xi/XI/System. Grund: com.sap.aii.af.ra.ms.api.RecoverableException: Received HTTP response code 500 : Error during parsing of SOAP header
If I changed the SOAP message to the common format, it is accepted by the integration engine.
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope">
<SOAP:Body>
<orders05>...</orders05>
</SOAP:Body>
</SOAP:Envelope>
Here the namespace ' xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope" ' is defined with a prefix and assigned to the elements 'envelope' and 'body'. The 'orders05' element has no namespace.
However due to the xml syntax both messages are the same, so why the integration engine handle the messages different?
Best regards,
Nils Kloth
The valid SOAP format supported by XI is as follows
<SOAP:Envelope
xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<m:MessageTypeName xmlns:m="Some-URI">
<Price>34.5</Price>
</m:MessageTypeName>
</SOAP:Body>
</SOAP:Envelope>
Ur sender system is not sending the data in correct Soap format and thats the cause of message rejection. The option you have to use the Soap adapter in "no soap" mode.
Regards,
Prateek
Similar Messages
-
XML parsing problems with Oracle XML parser for PL/SQL
I am using the Oracle XML parser for PL/SQL to transform XML into HTML usign XSL. The parser gives me sporadic errors trying to parse various XML documents. For the same XML source, the XMLPARSER will parse without errors one day and the next day will give me errors such as "invalid char in text", "Expected ';'.", or even Java null pointer exceptions.
I have verified that the XML sources are well formed, so I am pretty certain that the problems I am having are bugs in the XMLPARSER.
Is there going to be a XML parser for PL/SQL version 2 that will fix these bugs? If so, when??? If not, is there anything else I could do to fix these problems?
Thanks!You can use the latest version.
-
Problems with reading XML files with ISO-8859-1 encoding
Hi!
I try to read a RSS file. The script below works with XML files with UTF-8 encoding but not ISO-8859-1. How to fix so it work with booth?
Here's the code:
import java.io.File;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.net.*;
* @author gustav
public class RSSDocument {
/** Creates a new instance of RSSDocument */
public RSSDocument(String inurl) {
String url = new String(inurl);
try{
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(url);
NodeList nodes = doc.getElementsByTagName("item");
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
NodeList title = element.getElementsByTagName("title");
Element line = (Element) title.item(0);
System.out.println("Title: " + getCharacterDataFromElement(line));
NodeList des = element.getElementsByTagName("description");
line = (Element) des.item(0);
System.out.println("Des: " + getCharacterDataFromElement(line));
} catch (Exception e) {
e.printStackTrace();
public String getCharacterDataFromElement(Element e) {
Node child = e.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
return "?";
}And here's the error message:
org.xml.sax.SAXParseException: Teckenkonverteringsfel: "Malformed UTF-8 char -- is an XML encoding declaration missing?" (radnumret kan vara f�r l�gt).
at org.apache.crimson.parser.InputEntity.fatal(InputEntity.java:1100)
at org.apache.crimson.parser.InputEntity.fillbuf(InputEntity.java:1072)
at org.apache.crimson.parser.InputEntity.isXmlDeclOrTextDeclPrefix(InputEntity.java:914)
at org.apache.crimson.parser.Parser2.maybeXmlDecl(Parser2.java:1183)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:653)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
at getrss.RSSDocument.<init>(RSSDocument.java:25)
at getrss.Main.main(Main.java:25)I read files from the web, but there is a XML tag
with the encoding attribute in the RSS file.If you are quite sure that you have an encoding attribute set to ISO-8859-1 then I expect that your RSS file has non-ISO-8859-1 character though I thought all bytes -128 to 127 were valid ISO-8859-1 characters!
Many years ago I had a problem with an XML file with invalid characters. I wrote a simple filter (using FilterInputStream) that made sure that all the byes it processed were ASCII. My problem turned out to be characters with value zero which the Microsoft XML parser failed to process. It put the parser in an infinite loop!
In the filter, as each byte is read you could write out the Hex value. That way you should be able to find the offending character(s). -
Problem with generating xml and nested cursor (ora-600)
I have a problem with generating xml (with dbms_xmlquery or xmlgen) and nested cursors.
When I execute the following command, I get a ORA-600 error:
select dbms_xmlquery.getxml('select mst_id
, mst_source
, cursor(select per.*
, cursor(select ftm_fdf_number
, ftm_value
from t_feature_master
where ftm_mstr_id = pers_master_id ) as features
from t_person per
where pers_master_id = mst_id ) as persons
from f_master
where mst_id = 3059435')
from dual;
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: ORA-00600: internal error code, arguments: [kokbnp2], [1731], [], [], [], [], [], []
</ERROR>
The problem is the second cursor (t_feature_master).
I want to generate this:
<master>
<..>
<persons>
<..>
<features>
<..>
</features>
</persons>
<persons>
<..>
<features>
<..>
</features>
</persons>
</master>
If i execute the select-statement in sql-plus, then I get the next result.
MST_ID MST_SOURCE PERSONS
3059435 GG CURSOR STATEMENT : 3
CURSOR STATEMENT : 3
PERS_MASTER_ID PERS_TITLE PERS_INITI PERS_FIRSTNAME PERS_MIDDL PERS_LASTNAME
3059435 W. Name
CURSOR STATEMENT : 15
FTM_FDF_NUMBER FTM_VALUE
1 [email protected]
10 ....
I use Oracle 8.1.7.4 with Oracle XDK v9.2.0.5.0.
Is this a bug and do somebody know a workaround?Very simple...Drop all type objects and nested tables and create them again. You will get no error. I'll explain the reason later.
-
File to IDoc : XML parsing in ABAP mapping
Hi,
In ABAP mapping I want to parse all of the incoming XML strings to internal table.Later I add few more fields to this table and transfer them to IDOC adapter in IDOC-XML format.In thsi case how do i get all of the input file data(converted from XML) into internal table using XML parsing in ABAP Mapping?
Thansk in advance,
RPHi Amil,
I insert into table but not immediately,I want all the parsed xml data into internal table and do something before I insert into DB /send it to IDOC.
I knwo how to get single Xml parsing,but how to get multple records(looping xml parse) to internal table?
Thanks,
RP
Edited by: RP@261 on Jun 3, 2009 2:14 PM -
Problem with the XML in Word 2007 (Word Template)
Hi Experts,
i am new on CRM 2007 and i have a problem with the XML Structure of the Word Template.
First i built a Web Service Design Tool. Then i saw on the Testpage, that it works.
So i started the Document Templates and created a new Template. Object Type was BUS2000126 - CRM Business Activity. Web Service was my created and tested Web Service Tool.
As i opened the Word 2007 with the XML-Structure, i recognized, that there was something wrong.
The Responce on my Testpage from the Web Service Tool had the following structure:
response (test.types.p1.CrmostZlaWord5ReadResponse)
Output (test.types.p1.CrmostZla010RoszlaWord5001)
ZlaWord5 (test.types.p1.CrmostZla010Rosbtorder)
Administrativeheaderoforder (test.types.p1.CrmostZla010Rosbtorderhea001)
Partiesinvolvedofheader (test.types.p1.CrmostZla010Rosbtheaderpa001)
Allpartiesinvolved (test.types.p1.CrmostZla010Rosbtpartnera002[]) Displaying 3 elements of 3
element1 (test.types.p1.CrmostZla010Rosbtpartnera002)
Btpartneraddress (test.types.p1.CrmostZla010Rosbtpartnera001)
My Problem is now, that the XML-Structure got not that point "element1".
Instead of "element1" there is the point "item" in my XML-Structure in Word 2007.
I guess that is the Problem why i am not getting the fields of the Btpartneraddress filled in my Word.
Can anyone help me? Or put me in the right direction that i can change the XML?
Thanks for your help
AndréHi andré, I guess the issue is coming from the fact that you selected "AllPartiesInvolved" and that may contain any numbers of entries. So when you test your webservice, you put a key and then get a result for that key, and in that case you might get "element1" until "element3" for example if there was 3 partners involved in you activity.
But, when you design your template, you don't have a key at that moment, so in the Web Service structure, you have "items" which stands for all the possible entries you might retrieve at runtime. I guess you could use an index in your template to specify which item you need, but this is quite hasardeous, so i would be you, I would not design my web service to use "AllPartiesInvolved" but rather a specific Partner type like contact person for instance.
Regards,
Xavier -
Problem with castor xml mapping
Hi,
we have following problem with castor xml mapping.
How to use references in the collections(Hashmap or vector)?
WE have a method called getAttribute map which will return a hashmap consist different type of objects. We want to keep only the
references of objects if that object occurs more than once,instead of keeping the whole object
Following is the the xml mapping file.
<mapping>
<class name="com.opvista.ndtool.core.mos.ManagedObject" identity="Id" auto-complete="false" verify-constructable="false">
<map-to xml="ManagedObject"/>
<field name="Id" get-method="getId" set-method="setId" type="string">
<bind-xml name="Id" node="attribute"/>
</field>
<field name="AttributeMap" type="org.exolab.castor.mapping.MapItem" collection="map" get-method="getAttributeMap">
<bind-xml name="AttributeMap" node="element">
<class name="org.exolab.castor.mapping.MapItem">
<field name="key" type="java.lang.Object">
<bind-xml name="key" node="attribute"/>
</field>
<field name="value" type="java.lang.Object">
<bind-xml name="value" node="element" reference="true"/>
</field>
</class>
</bind-xml>
</field>
</class>
</mapping>
we are using reference=true for the values. But it will throw below exception.
Unable to resolve ID for instance of class 'java.lang.String' due to the following error: Unable to resolve ClassDescriptor.
at org.exolab.castor.xml.Marshaller.getObjectID(Marshaller.java:1988)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1628)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1831)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1814)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1825)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:821)
Please help us to overcome from this problem?
Thanks,
Dileepfor your ref here is what i think the basic mapping file would look like
<class name="Person">
<map-to xml="person"/>
<field name="name" type="string">
<bind-xml name="name" node="attribute" />
</field>
<field name="age" type="string">
<bind-xml name="age" node="attribute" />
</field>
</class>
<class name="MetaPerson">
<map-to xml="person"/>
<field name="dependents" type="string">
<bind-xml name="dependents" node="attribute" />
</field>
<field name="presentAdd" type="string">
<bind-xml name="present_add " node="attribute" />
</field>
<field name="permanentAdd" type="string">
<bind-xml name="permanent_add " node="attribute" />
</field>
</class>
however i am still not clear as to how i can use the metaperson object in the person class as well as in the mapping file.
hope this gives a better idea abt my problem statement.
Please help me out -
Hello,
I have a big problem with web.xml.
i can run the servlet demos with the default web.xml, but when i try to user a costum web.xml files, i receive a 404 page not found on a link.
i have some dificulty to post here. but can somebody help my with my web.xml files?
thanks for your help.
have a nice day!Be careful with the place of your files and folders. It's possible that you've just mentioned the cause of your problem.
My web.xml is
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>gco</display-name>
<description>gco webapplicaties</description>
<servlet>
<servlet-name>MopoController</servlet-name>
<servlet-class>org.gertcuppens.controller.MopoController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MopoController</servlet-name>
<url-pattern>/MOPO</url-pattern>
</servlet-mapping>
</web-app>
When I want to call my web application locally, I use the URL http://localhost:8080/gco/MOPO.
The http://localhost:8080 calls Tomcat. With /gco, Tomcat knows it should look for a folder gco inside the webapps folder. This one should contain a WEB-INF/web.xml folder for further instructions.
With /MOPO Tomcat knows, having read the web.xml files of all webapps folders at start, it should look for a servlet with the name MopoController. And this MopoController points to the class org.gertcuppens.controller.MopoController. So, Tomcat knows where to find everything.
Try to see whether your Tomcat can find everything inside the folders using your web.xml file. -
Problem with Persistence.xml in JDev final after migration
Hi,
I am trying to migrate a current project from JDev 11gTp4 to the JDev production release. When deploying the EJB module I get the following problem though (Stack from DefaultServer.log)
weblogic.application.ModuleException: Exception preparing module: EJBModule(Nexus-NexusModel-ejb)
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:452)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:197)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:89)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:723)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1190)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
java.lang.UnsupportedOperationException: This parser does not support specification "null" version "null"
at javax.xml.parsers.DocumentBuilderFactory.setSchema(DocumentBuilderFactory.java:561)
at weblogic.xml.jaxp.RegistryDocumentBuilder.setupDocumentBuilderFactory(RegistryDocumentBuilder.java:393)
at weblogic.xml.jaxp.RegistryDocumentBuilder.getDefaultDocumentBuilderFactory(RegistryDocumentBuilder.java:359)
at weblogic.xml.jaxp.RegistryDocumentBuilder.getDocumentBuilder(RegistryDocumentBuilder.java:298)
at weblogic.xml.jaxp.RegistryDocumentBuilder.parse(RegistryDocumentBuilder.java:150)
at org.eclipse.persistence.platform.xml.jaxp.JAXPParser.parse(JAXPParser.java:163)
at org.eclipse.persistence.platform.xml.jaxp.JAXPParser.parse(JAXPParser.java:197)
at org.eclipse.persistence.internal.oxm.record.DOMUnmarshaller.unmarshal(DOMUnmarshaller.java:213)
at org.eclipse.persistence.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:309)
at org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappingsReader.read(XMLEntityMappingsReader.java:72)
at org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappingsReader.read(XMLEntityMappingsReader.java:112)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.loadStandardMappingFiles(MetadataProcessor.java:343)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.loadMappingFiles(MetadataProcessor.java:271)
at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:294)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:830)
at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:189)
at weblogic.deployment.PersistenceUnitInfoImpl.createEntityManagerFactory(PersistenceUnitInfoImpl.java:330)
at weblogic.deployment.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:123)
at weblogic.deployment.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:331)
at weblogic.deployment.AbstractPersistenceUnitRegistry.loadPersistenceDescriptor(AbstractPersistenceUnitRegistry.java:245)
at weblogic.deployment.ModulePersistenceUnitRegistry.<init>(ModulePersistenceUnitRegistry.java:63)
at weblogic.ejb.container.deployer.EJBModule.setupPersistenceUnitRegistry(EJBModule.java:209)
at weblogic.ejb.container.deployer.EJBModule$1.execute(EJBModule.java:310)
at weblogic.deployment.PersistenceUnitRegistryInitializer.setupPersistenceUnitRegistries(PersistenceUnitRegistryInitializer.java:62)
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:376)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:197)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:89)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:723)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1190)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
My persistence.xml looks like
<?xml version="1.0" encoding="windows-1252" ?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="Nexus-ejbPU">
<provider>
org.eclipse.persistence.jpa.PersistenceProvider
</provider>
<jta-data-source>
jdbc/NexusPoolDS
</jta-data-source>
<mapping-file>
META-INF/orm.xml
</mapping-file>
<properties>
<property name="eclipselink.target-server" value="WebLogic_10"/>
<property name="eclipselink.logging.file" value="Toplink.log"/>
<property name="eclipselink.logging.timestamp" value="true"/>
<property name="eclipselink.logging.exceptions" value="true"/>
<property name="eclipselink.logging.session" value="true"/>
</properties>
</persistence-unit>
</persistence>
orm.xml looks like this
<?xml version="1.0" encoding="windows-1252" ?>
<entity-mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence/orm">
<persistence-unit-metadata>
<persistence-unit-defaults>
<schema>
XXX
</schema>
</persistence-unit-defaults>
</persistence-unit-metadata>
<package>
za.co.medscheme.model.persistence.xxx
</package>
<schema>
XXX
</schema>
</entity-mappings>
I have noticed that the persistence.xml file have changed quite drastically from the version we had in TP4 release during project upgrade, but can not explain the problem we are getting. I have also tried to just create a dummy project and create a persistence unit, and the file looks exactly the same afterwards. Any thoughts?
DrikusJust thought I would add a temporary solution to the problem for those of you sitting with the same issue.
In the root folder of your application you will find a src folder with a meta-inf folder and weblogic-application.xml inside.
Add the following before the closing weblogic-application tag...
<xml>
<parser-factory>
<saxparser-factory>
weblogic.xml.jaxp.WebLogicSAXParserFactory
</saxparser-factory>
<document-builder-factory>
weblogic.xml.jaxp.WebLogicDocumentBuilderFactory
</document-builder-factory>
<transformer-factory>
weblogic.xml.jaxp.WebLogicSAXTransformerFactory
</transformer-factory>
</parser-factory>
</xml>
If there wasnt an xml tag in the file, it seems that JDeveloper somehow adds one on the fly for you pointing to an oracle xml parser that does not contain the setSchema method required by weblogic on deployment.
Hope this helps anybody else that has this problem.
Regards
Drikus Britz -
Hi all,
I am trying to replace the official oracle XML library by apache xerces on a soa suite 10.1.3.1 developper hosted on a linux red hat platform.
I have found a how to on oracle web site (http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-swapxmlparser/doc/readme.html). I hadn't found any archive containing the source so I have buid a simple test using EJB 3 (In fact, I have created a "hello word" session bean that return a String containing the Dom builder factory class name).
I have create the shared library using Entreprise manager as described in the how to.
My test works fine if I deploy it with the default XML factory but if I add the following lines to the orion-application.xml, the deployment process ends with a null pointer exception :
<imported-shared-libraries>
<import-shared-library name="apache.xml" />
<remove-inherited name="oracle.xml" />
</imported-shared-libraries>
I have tried to deploy the test using the entreprise manager web UI (as explain in how to) but the result was the same.
I have tried to remove the "<remove-inherited name="oracle.xml" />" line but in this case, the XML parser still the oracle one.
Do you know if the library specification is available in the last soa suite ?
Thank in advance for your responses.
Alexandre CUCUMEL
PS: I can send the test code source if needed
PS2: here is the complete opmn stack trace when I try to deploy the test application
08/08/08 15:46:36 java.lang.RuntimeException: javax.xml.parsers.FactoryConfigurationError: Provider oracle.xml.jaxp.JXDocumentBuilderFactory could not
be instantiated: java.lang.NullPointerException
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.Processor.runActions(Processor.java:105)
08/08/08 15:46:36 at oracle.j2ee.ws.common.metadata.annotation.DeploymentGenerator$DeploymentCompileTool.run(DeploymentGenerator.java:205)
08/08/08 15:46:36 at oracle.j2ee.ws.common.metadata.annotation.DeploymentGenerator.generateDeploymentArtifacts(DeploymentGenerator.java:131)
08/08/08 15:46:36 at oracle.j2ee.ws.common.metadata.annotation.EJBWebServiceAnnotationParser.parseAnnotatedBean(EJBWebServiceAnnotationParser.ja
va:165)
08/08/08 15:46:36 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
08/08/08 15:46:36 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
08/08/08 15:46:36 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
08/08/08 15:46:36 at java.lang.reflect.Method.invoke(Method.java:585)
08/08/08 15:46:36 at oracle.j2ee.ws.server.deployment.oc4j.WebServiceAnnotationListener.parseAnnotatedClass(WebServiceAnnotationListener.java:85
08/08/08 15:46:36 at com.evermind.server.ejb.AnnotationParser.notifyAnnotationListeners(AnnotationParser.java:201)
08/08/08 15:46:36 at com.evermind.server.ejb.AnnotationParser.parseAnnotations(AnnotationParser.java:73)
08/08/08 15:46:36 at com.evermind.server.ejb.EJBPackageDeployment.parseMetaData(EJBPackageDeployment.java:939)
08/08/08 15:46:36 at com.evermind.server.ejb.EJBContainer.postInit(EJBContainer.java:832)
08/08/08 15:46:36 at com.evermind.server.ApplicationStateRunning.initializeApplication(ApplicationStateRunning.java:217)
08/08/08 15:46:36 at com.evermind.server.Application.setConfig(Application.java:413)
08/08/08 15:46:36 at com.evermind.server.Application.setConfig(Application.java:314)
08/08/08 15:46:36 at com.evermind.server.ApplicationServer.addApplication(ApplicationServer.java:1853)
08/08/08 15:46:36 at oracle.oc4j.admin.internal.ApplicationDeployer.addApplication(ApplicationDeployer.java:512)
08/08/08 15:46:36 at oracle.oc4j.admin.internal.ApplicationDeployer.doDeploy(ApplicationDeployer.java:196)
08/08/08 15:46:36 at oracle.oc4j.admin.internal.DeployerBase.execute(DeployerBase.java:93)
08/08/08 15:46:36 at oracle.oc4j.admin.jmx.server.mbeans.deploy.OC4JDeployerRunnable.doRun(OC4JDeployerRunnable.java:52)
08/08/08 15:46:36 at oracle.oc4j.admin.jmx.server.mbeans.deploy.DeployerRunnable.run(DeployerRunnable.java:81)
08/08/08 15:46:36 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
08/08/08 15:46:36 at java.lang.Thread.run(Thread.java:595)
08/08/08 15:46:36 Caused by: javax.xml.parsers.FactoryConfigurationError: Provider oracle.xml.jaxp.JXDocumentBuilderFactory could not be instantiated:
java.lang.NullPointerException
08/08/08 15:46:36 at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:104)
08/08/08 15:46:36 at oracle.j2ee.ws.wsdl.extensions.oracle.schema.SchemaSchemaElement.<init>(SchemaSchemaElement.java:37)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.generator.wsdl.WSDLTypeGenerator.generateSchema(WSDLTypeGenerator.java:435)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.generator.wsdl.WSDLTypeGenerator.processElement(WSDLTypeGenerator.java:735)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.generator.wsdl.WSDLTypeGenerator.processElementsInMessage(WSDLTypeGenerator.java:352)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.generator.wsdl.WSDLTypeGenerator.run(WSDLTypeGenerator.java:207)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.generator.wsdl.WSDLGenerator.generateTypes(WSDLGenerator.java:291)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.generator.wsdl.WSDLGenerator.generateDocument(WSDLGenerator.java:242)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.generator.wsdl.WSDLGenerator.doGeneration(WSDLGenerator.java:176)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.generator.wsdl.WSDLGenerator.doGeneration(WSDLGenerator.java:141)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.generator.wsdl.WSDLGenerator.perform(WSDLGenerator.java:126)
08/08/08 15:46:36 at oracle.j2ee.ws.common.processor.Processor.runActions(Processor.java:97)
08/08/08 15:46:36 ... 23 more
08/08/08 15:46:36 WARNING: Application.setConfig Application: testDeployement is in failed state as initialization failed.
java.lang.InstantiationException: Error initializing ejb-modules: nested exception is: java.lang.NullPointerException
08/08/08 15:46:36 oracle.oc4j.admin.internal.DeployerException: java.lang.InstantiationException: Application: testDeployement is in failed state as i
nitialization failed
08/08/08 15:46:36 at oracle.oc4j.admin.internal.ApplicationDeployer.addApplication(ApplicationDeployer.java:515)
08/08/08 15:46:36 at oracle.oc4j.admin.internal.ApplicationDeployer.doDeploy(ApplicationDeployer.java:196)
08/08/08 15:46:36 at oracle.oc4j.admin.internal.DeployerBase.execute(DeployerBase.java:93)
08/08/08 15:46:36 at oracle.oc4j.admin.jmx.server.mbeans.deploy.OC4JDeployerRunnable.doRun(OC4JDeployerRunnable.java:52)
08/08/08 15:46:36 at oracle.oc4j.admin.jmx.server.mbeans.deploy.DeployerRunnable.run(DeployerRunnable.java:81)
08/08/08 15:46:36 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
08/08/08 15:46:36 at java.lang.Thread.run(Thread.java:595)
08/08/08 15:46:36 Caused by: java.lang.InstantiationException: Application: testDeployement is in failed state as initialization failed
08/08/08 15:46:36 at com.evermind.server.Application.setConfig(Application.java:471)
08/08/08 15:46:36 at com.evermind.server.Application.setConfig(Application.java:314)
08/08/08 15:46:36 at com.evermind.server.ApplicationServer.addApplication(ApplicationServer.java:1853)
08/08/08 15:46:36 at oracle.oc4j.admin.internal.ApplicationDeployer.addApplication(ApplicationDeployer.java:512)
08/08/08 15:46:36 ... 6 more
08/08/08 15:46:36 Caused by: java.lang.InstantiationException: Error initializing ejb-modules: nested exception is: java.lang.NullPointerException
08/08/08 15:46:36 at com.evermind.server.ejb.EJBContainer.postInit(EJBContainer.java:1064)
08/08/08 15:46:36 at com.evermind.server.ApplicationStateRunning.initializeApplication(ApplicationStateRunning.java:217)
08/08/08 15:46:36 at com.evermind.server.Application.setConfig(Application.java:413)
08/08/08 15:46:36 ... 9 more
08/08/08 15:46:36 Caused by: javax.ejb.EJBException: nested exception is: java.lang.NullPointerException
08/08/08 15:46:36 at com.evermind.server.ejb.EJBUtils.createEJBException(EJBUtils.java:365)
08/08/08 15:46:36 at com.evermind.server.ejb.EJBUtils.createEJBException(EJBUtils.java:356)
08/08/08 15:46:36 at oracle.j2ee.ws.server.deployment.oc4j.WebServiceAnnotationListener.parseAnnotatedClass(WebServiceAnnotationListener.java:92
08/08/08 15:46:36 at com.evermind.server.ejb.AnnotationParser.notifyAnnotationListeners(AnnotationParser.java:201)
08/08/08 15:46:36 at com.evermind.server.ejb.AnnotationParser.parseAnnotations(AnnotationParser.java:73)
08/08/08 15:46:36 at com.evermind.server.ejb.EJBPackageDeployment.parseMetaData(EJBPackageDeployment.java:939)
08/08/08 15:46:36 at com.evermind.server.ejb.EJBContainer.postInit(EJBContainer.java:832)
08/08/08 15:46:36 ... 11 more
08/08/08 15:46:36 Caused by: java.lang.NullPointerException
08/08/08 15:46:36 at oracle.j2ee.ws.common.metadata.annotation.DeploymentGenerator.generateDeploymentArtifacts(DeploymentGenerator.java:138)
08/08/08 15:46:36 at oracle.j2ee.ws.common.metadata.annotation.EJBWebServiceAnnotationParser.parseAnnotatedBean(EJBWebServiceAnnotationParser.ja
va:165)
08/08/08 15:46:36 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
08/08/08 15:46:36 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
08/08/08 15:46:36 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
08/08/08 15:46:36 at java.lang.reflect.Method.invoke(Method.java:585)
08/08/08 15:46:36 at oracle.j2ee.ws.server.deployment.oc4j.WebServiceAnnotationListener.parseAnnotatedClass(WebServiceAnnotationListener.java:85
08/08/08 15:46:36 ... 15 more
08/08/08 15:46:36 WARNING: DeployerRunnable.run java.lang.InstantiationException: Application: testDeployement is in failed state as initialization fa
iledoracle.oc4j.admin.internal.DeployerException: java.lang.InstantiationException: Application: testDeployement is in failed state as initialization
failed
at oracle.oc4j.admin.internal.DeployerBase.execute(DeployerBase.java:126)
at oracle.oc4j.admin.jmx.server.mbeans.deploy.OC4JDeployerRunnable.doRun(OC4JDeployerRunnable.java:52)
at oracle.oc4j.admin.jmx.server.mbeans.deploy.DeployerRunnable.run(DeployerRunnable.java:81)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.InstantiationException: Application: testDeployement is in failed state as initialization failed
at com.evermind.server.Application.setConfig(Application.java:471)
at com.evermind.server.Application.setConfig(Application.java:314)
at com.evermind.server.ApplicationServer.addApplication(ApplicationServer.java:1853)
at oracle.oc4j.admin.internal.ApplicationDeployer.addApplication(ApplicationDeployer.java:512)
at oracle.oc4j.admin.internal.ApplicationDeployer.doDeploy(ApplicationDeployer.java:196)
at oracle.oc4j.admin.internal.DeployerBase.execute(DeployerBase.java:93)
... 4 more
Caused by: java.lang.InstantiationException: Error initializing ejb-modules: nested exception is: java.lang.NullPointerException
at com.evermind.server.ejb.EJBContainer.postInit(EJBContainer.java:1064)
at com.evermind.server.ApplicationStateRunning.initializeApplication(ApplicationStateRunning.java:217)
at com.evermind.server.Application.setConfig(Application.java:413)
... 9 more
Caused by: javax.ejb.EJBException: nested exception is: java.lang.NullPointerException
at com.evermind.server.ejb.EJBUtils.createEJBException(EJBUtils.java:365)
at com.evermind.server.ejb.EJBUtils.createEJBException(EJBUtils.java:356)
at oracle.j2ee.ws.server.deployment.oc4j.WebServiceAnnotationListener.parseAnnotatedClass(WebServiceAnnotationListener.java:92)
at com.evermind.server.ejb.AnnotationParser.notifyAnnotationListeners(AnnotationParser.java:201)
at com.evermind.server.ejb.AnnotationParser.parseAnnotations(AnnotationParser.java:73)
at com.evermind.server.ejb.EJBPackageDeployment.parseMetaData(EJBPackageDeployment.java:939)
at com.evermind.server.ejb.EJBContainer.postInit(EJBContainer.java:832)
... 11 more
Caused by: java.lang.NullPointerException
at oracle.j2ee.ws.common.metadata.annotation.DeploymentGenerator.generateDeploymentArtifacts(DeploymentGenerator.java:138)
at oracle.j2ee.ws.common.metadata.annotation.EJBWebServiceAnnotationParser.parseAnnotatedBean(EJBWebServiceAnnotationParser.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at oracle.j2ee.ws.server.deployment.oc4j.WebServiceAnnotationListener.parseAnnotatedClass(WebServiceAnnotationListener.java:85)
... 15 moreAndre,
Thanks for your interest on my problem.
In fact, I have created a test with just an interface and a class. No additional jars are added at compilation or ejb creation time.
My java code is very simple (I have just copied the example main method and convert it to a SOAP method :
package be.test;
import javax.ejb.Stateless;
import javax.jws.WebService;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@Stateless
@WebService(endpointInterface = "be.test.Test")
public class TestImpl implements Test {
public String test() {
DocumentBuilder builder=null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try
builder = factory.newDocumentBuilder();
return "<BR><B>DocumentBuilderFactory Instance:</B> " + factory.getClass().getName() +
"<BR><B>DocumentBuilder Instance:</B> " + builder.getClass().getName() +"<BR>"; }
catch (Exception e)
return "Error processing DOM -- " + e.getMessage();
Unfortunately, I think that the problem may come from EJB 3 stack that does not support an other XML library.
Thanks again for your help.
Best regards,
Alexandre
PS: appologies for the message formatting... I don't understand why the new line caracters are not corrects. -
I have tried increasing the memory pool using the -mx and -ms options. It doesnt work. I am using your latest XML parser for Java v2. Please let me know if there are some specific options I should be using.
Thanx,
-Sameer
We have a number of test files that are that size and it works without a problem. However using the DOMParser does require significantly more memory than your doc size.
What is the memory configuration of the JVM that you are running with? Have you tried increasing it? Are you using our latest version 2.0.2.6?
Oracle XML Team
Is there a restriction on the XML file size that can be loaded into the parser?
I am getting a out of memory exception reading in large XML file(10MB) using the commands
DOMParser parser = new DOMParser();
URL url = createURL(argv[0]);
parser.setErrorStream(System.err);
parser.setValidationMode(true);
parser.showWarnings(true);
parser.parse(url);
Win NT 4.0 Server
Sun JDK 1.2.2
===================================
Error output
===================================
Exception in thread "main" java.lang.OutOfMemoryError
at oracle.xml.parser.v2.ElementDecl.getAttrDecls(ElementDecl.java, Compi
led Code)
at java.util.Hashtable.<init>(Unknown Source)
at oracle.xml.parser.v2.DTDDecl.<init>(DTDDecl.java, Compiled Code)
at oracle.xml.parser.v2.ElementDecl.getAttrDecls(ElementDecl.java, Compi
led Code)
at oracle.xml.parser.v2.ValidatingParser.checkDefaultAttributes(Validati
ngParser.java, Compiled Code)
at oracle.xml.parser.v2.NonValidatingParser.parseAttributes(NonValidatin
gParser.java, Compiled Code)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingPa
rser.java, Compiled Code)
at oracle.xml.parser.v2.ValidatingParser.parseRootElement(ValidatingPars
er.java:97)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingP
arser.java:199)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:146)
at TestLF.main(TestLF.java:40)
nullYou might try using a different JDK/JRE - either a 1.1.6+ or 1.3 version as 1.2 in our experience has the largest footprint. If this doesn't work can you give us some details about your system configuration. Finally you might try the SAX interface as it does not need to load the entire DOM tree into memory.
Oracle XML Team -
Nls support with oracle xml parser in java
I'm using The JAXP interface to manipulate xml with xsl. the implementation that I use is Oracle xml parser.
My xml contains a lot of hebrew chars, and in the result stream each char translated into 5-6 chars, which makes the result to be 5-6 times bigger than it suppose to be, and harder for me to debug my application.
The client's browser shows the results well.
How can I make the transformator to transform the hebrew chars to hebrew char istead of longer and not readable string ?Oracle XML Team wrote:
: Stephen Flinter (guest) wrote:
: : Environment: WinNT 4.0/SP4, Apache 1.3.6, JServ 1.0, Oracle
: 8.1.5
: : I have downloaded the new Java v2 XML Parser (2.0.2), and
have
: : replaced the wrapper.classpath entry in my jserv.properties
: file
: : with the path to the new parser.
: : When I rerun the "Employee Page" demo, I get the following
: : exception message:
: : [15/09/1999 11:02:22:974 GMT] java.lang.NoSuchMethodError:
: : oracle.xml.parser.v2.XSLProcessor: method
: : processXSL
: (Loracle/xml/parser/v2/XSLStylesheet;Loracle/xml/parser
: : /v2/XMLDocument;)Lorg/w3c/dom/DocumentFragment; not found
: : at oracle.xml.xsql.XSLHelper.process(XSLHelper.java:34)
: : at oracle.xml.xsql.XSQLServlet.doGet(XSQLServlet.java,
: : Compiled Code)
: : at
: : javax.servlet.http.HttpServlet.service(HttpServlet.java:499)
: : at
: : javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
: : at
: : org.apache.jserv.JServConnection.processRequest
: (JServConnection.j
: : ava)
: : at
: : org.apache.jserv.JServConnection.run(JServConnection.java)
: : at java.lang.Thread.run(Thread.java:479)
: : This demo was works fine with the parser shipped with the
: : xsql_servlet download.
: : Regards,
: : Steve
: Version 2.0.2 uses the August XSLT WD which is incompatible
with
: the April WD on which our previous releases including the demos
: were based.
: Oracle XML Team
: http://technet.oracle.com
: Oracle Technology Network
Hi,
Can someone from the Oracle XML Team point us to a fix so we can
continue our testing???
Steve...
null -
Problem with loading XML file from directory.
Hello everyone.
*1)* I have directory defined by DBA. I have read, write privileges. I can read file from this directory using UTL_FILE, I can create file in this directory using UTL_FILE. I tried many times and it does not seem to be any problems.
*2)* I have very simple XML table (with just one column of xmltype). I can insert into this column using:
insert into temp_xml values (
Xmltype ('<something></something>')
*3)* When executing
insert into temp_xml values (
Xmltype (
bfilename('XML_LOCATION', 'sample.xml'),
nls_charset_id('AL16UTF8')
I'm receiving an error:
Error report:
SQL Error: ORA-22288: file or LOB operation FILEOPEN failed
ORA-06512: at "SYS.DBMS_LOB", line 523
ORA-06512: at "SYS.XMLTYPE", line 287
ORA-06512: at line 1
22288. 00000 - "file or LOB operation %s failed\n%s"
*Cause: The operation attempted on the file or LOB failed.
*Action: See the next error message in the error stack for more detailed
information. Also, verify that the file or LOB exists and that
the necessary privileges are set for the specified operation. If
the error still persists, report the error to the DBA.
*4)* Previously I was receiving more descriptive errors like permission denied, file not exists etc. This time there is no clear description apart from "file or LOB operation %s failed\n%s". I'm sure I can access this file in this directory (I used UTL_FILE to dbms_output the content).
Any help would be greatly appreciated.
Regards
Marcin JankowskiHi Marcin,
Welcome to the forums.
One very important thing with Oracle XML : please always give your database version, all four digits (e.g. 10.2.0.4).
Does the directory resides on the same machine as the database? Which OS?
Does any of the following work ?
DECLARE
v_lob CLOB;
v_file BFILE;
BEGIN
v_file := BFILENAME('XML_LOCATION','sample.xml');
DBMS_LOB.createtemporary(v_lob, true);
DBMS_LOB.fileopen(v_file);
DBMS_LOB.loadfromfile(v_lob, v_file, DBMS_LOB.getlength(v_file));
INSERT INTO temp_xml VALUES( xmltype(v_lob) );
DBMS_LOB.fileclose(v_file);
DBMS_LOB.freetemporary(v_lob);
END;
DECLARE
v_lob CLOB;
BEGIN
v_lob := DBMS_XSLPROCESSOR.read2clob('XML_LOCATION', 'sample.xml', nls_charset_id('AL16UTF8'));
INSERT INTO temp_xml VALUES( xmltype(v_lob) );
END;
/ -
Looking for some basics/fundamentals of XML Parsing in ABAP
Hello SAP gurus
I have to start workign on a project that involves Variant Configuration stuff that will be sent as XML document. I have to parse the XML document and save the needed data in some custom tables. I heard that there are some standard functions that we can use to do this job. I tried searching SDN for string XML parsing and got tons of postings regarding this. I tried to go through them one by one but it was way beyond my understanding at this time. I am looking for the fundamentals or how to start from scratch.
I would appreciate if anybody can guide me to find some kind tutorial or basic info on where and how to start.
Thanks a lot in advance
RamXML parsing through CALL TRANSFORMATION is one of the easiest method. A transformation needs to be created as per your XML data in transaction XSLT_TOOL and the transformation needs to be called in ABAP program using "CALL TRANSFORMATION" statement.
Kindly search in internet for XSLT/simple transformations. -
Even Based XML Parsing in ABAP
Hi all ,
Currently i am using DOM Based Parsing to parse XML in my ABAP program. i am planning to change the code by using Event based parsing which is recommended for perfomance when we parse large xml document
Any one have the Example program for event based parsing the xml .pls help me in this.
Thanks in Advance
RamHello,
you can look at the coding example
data: event type ref to if_ixml_event,
event_sub type i
lp_dom type ref to if_ixml_document,
pstreamfac TYPE REF TO if_ixml_stream_factory,
pistream TYPE REF TO if_ixml_istream,
create the factory for streams
pstreamfac = g_ixml->create_stream_factory( ).
create the input stream:
pistream = pstreamfac->create_istream_cstring( string = xml ).
lp_dom = g_ixml->create_document( ).
create the iXML parser:
parser = g_ixml->create_parser(
stream_factory = pstreamfac
istream = pistream
document = lp_dom ).
let the parser know which events I am interested in
event_sub = if_ixml_event=>co_event_element_pre2 +
if_ixml_event=>co_event_element_post.
parser->set_event_subscription( events = event_sub ).
do.
event = parser->parse_event( ).
if event is initial.
exit. ' either end reached or error (check below)
endif.
data: str type string.
case event->get_type( ).
when if_ixml_event~co_event_element_pre2.
str = event->get_name( ). write: '<' str '>'.
when if_ixml_event~co_event_text_post.
str = event->get_value( ). write: str.
endcase.
enddo.
always check for errors:
if parser->num_errors( ) ne 0.
endif.
Regards,
Marc
Maybe you are looking for
-
why when selcting nano in devices nad try to regiser it will only allow me to save or cancel. the view is a big as it goes but i am unable to see or get to the accept button. any help would be great
-
Transfer Data from a WAS for ABAP to the SLD
Hello everybody, we have recently installed the ERP04 (Java+ABAP) and are wondering how we can publish the ABAP part to the SLD which came with the J2E Engine. Within the J2E Engine its simple, as can use the Visual Administrator, but how can this be
-
My sound speakers defective or committed to cough for me and tell me what to do?
-
HI all, Please someone help. When illustrator CS2 starts up there is an error message saying: Error loading Plugins. ADMEveParserCarbon.bundle. It opens up okay but iam unable to set my document size or draw a rectangle or circle at a particular s
-
I have iPhone 4 and I have purchased this from Dubai and now I am in India but now my phone didnot working here .so plz give me solution for this so I will use this in India.can I factory unlocked my iPhone by apple store at jaipur india