DeserializationException: mapping lookup failure for xml type
I generated a web-services.xml with the wsdl2Service task without a type mapping. The service is a document/literal based web service. I implemented the Java method, which accepts a single parameter with type javax.xml.soap.SOAPElement and returns javax.xml.soap.SOAPElement. Everytime I invoke the method from a client I get the following error from the server (WebLogic 8.1 SP4):
weblogic.xml.schema.binding.DeserializationException: mapping lookup failure for xml type ['urn:mytest1']:test and java interface javax.xml.soap.SOAPElement
at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:325)
What could be wrong with my configuration?
Hi,
I am also facing the same problem on weblogic8.1SP1.
If you had rectified this problem, please advice me as well.
Similar Messages
-
XML SCHEMA registration for XML TYPE (storing XML files in Oracle 10g)
I have created the XML Schema for the XML file stored in Oracle 10g and also added this Schema into the database. I have related that schema with the column in the table which contains the XML file. When i execute the query to fetch the data from the stored file i am getting a blank resultset. Is registering the XML Schema is necessary, if yes then please let me know the process of doing it. I have tried following steps to register Schema, but it is not working
Step1:
DECLARE
v_return BOOLEAN;
BEGIN
v_return := dbms_xdb.createFolder('/home/');
v_return := dbms_xdb.createFolder('/home/DEV/');
v_return := dbms_xdb.createFolder('/home/DEV/xsd/');
v_return := dbms_xdb.createFolder('/home/DEV/messages/');
v_return := dbms_xdb.createFolder('/home/DEV/employees/');
COMMIT;
END;
STEP 2:
Connecting To XML DB
Step3:
Register XML schema
I am failing to execute step number 2 and hence not able to register the schema also.<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by sudeepk:
If a java exception is thrown probably during ur install u might have forgotten
grant javauserpriv to scott;
grant javasyspriv to scott;
Thanks
[email protected]
<HR></BLOCKQUOTE>
Thank you!!! -
Mapping lookup up failure with input JavaBean with an array of strings
To receive input data our Web service defines a JavaBean one element of which is
an array of strings. When a test Java client calls the service method the call
is completed successfully. When a Perl client calls the service method an exception
is returned. If I understand BEA's Web service documentation, it isn't necessary
to do development for the service specifically to enable correct processing of
an array of strings.
In our environment we are running WL 8.1 SP 1.
Please review the problem documentation and explain to me the cause of the exception
and what I must do to prevent it.
Thank you.
The exception:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body><env:Fault><faultcode>env:Server</faultcode><faultstring>Exception
during processing: weblogic.xml.schema.binding.DeserializationException: mapping
lookup failure. type=['http://www.w3.org/1999/XMLSchema']:xsd:string schema context=TypedSchemaContext{javaType=java.lang.String}
(see Fault Detail for stacktrace)</faultstring><detail><bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0"/>weblogic.xml.schema.binding.DeserializationException:
mapping lookup failure. type=['http://www.w3.org/1999/XMLSchema']:xsd:string schema
context=TypedSchemaContext{javaType=java.lang.String}
at weblogic.xml.schema.binding.RuntimeUtils.lookup_deserializer(RuntimeUtils.java:461)
at weblogic.xml.schema.binding.SoapArrayCodecBase.getComponentDeserializer(SoapArrayCodecBase.java:574)
at weblogic.xml.schema.binding.SoapArrayCodecBase.deserialize(SoapArrayCodecBase.java:285)
at weblogic.xml.schema.binding.BeanCodecBase.processElement(BeanCodecBase.java:183)
at weblogic.xml.schema.binding.BeanCodecBase.processAllElements(BeanCodecBase.java:165)
at weblogic.xml.schema.binding.BeanCodecBase.processElements(BeanCodecBase.java:145)
at weblogic.xml.schema.binding.BeanCodecBase.deserialize(BeanCodecBase.java:108)
at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:428)
at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:328)
at weblogic.webservice.core.DefaultPart.toJava(DefaultPart.java:384)
at weblogic.webservice.core.DefaultMessage.toJava(DefaultMessage.java:458)
at weblogic.webservice.core.handler.InvokeHandler.handleRequest(InvokeHandler.java:78)
at weblogic.webservice.core.HandlerChainImpl.handleRequest(HandlerChainImpl.java:143)
at weblogic.webservice.core.DefaultOperation.process(DefaultOperation.java:518)
[more]
The XML generated for the Perl client:
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:namesp2="http://namespaces.soaplite.com/perl"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><namesp1:getWorkOrdersByFilters
xmlns:namesp1="ncr.com"><gIMServiceRequest xsi:type="ns:GIMServiceRequest" xmlns:ns="java:com.ncr.gim.bean.service"><applicationID
xsi:type="xsd:string">REVLOG</applicationID><nodeId xsi:type="xsd:string">00XH</nodeId><stopCodes
xsi:type="namesp2:array" SOAP-ENC:arrayType="xsd:string[2]"><xsd:string xsi:type="xsd:string">06</xsd:string><xsd:string
xsi:type="xsd:string">16</xsd:string></stopCodes></gIMServiceRequest></namesp1:getWorkOrdersByFilters></SOAP-ENV:Body></SOAP-ENV:Envelope>
The XML generated for a test Java client:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body
env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><m:getWorkOrdersByFilters
xmlns:m="ncr.com"><gIMServiceRequest xmlns:n1="java:com.ncr.gim.bean.service"
xsi:type="n1:GIMServiceRequest"><CSRCode xsi:type="xsd:string">987x00</CSRCode><applicationID
xsi:type="xsd:string">GIM</applicationID><incidentNbr xsi:nil="true"/><nodeId
xsi:type="xsd:string">00T5</nodeId><stopCodes soapenc:arrayType="xsd:string[3]"><xsd:string
xsi:type="xsd:string">00</xsd:string><xsd:string xsi:type="xsd:string">01</xsd:string><xsd:string
xsi:type="xsd:string">02</xsd:string></stopCodes></gIMServiceRequest></m:getWorkOrdersByFilters></env:Body></env:Envelope>
The JavaBean:
public class GIMServiceRequest implements Serializable {
private String applicationID = GIMConstants.UNKNOWN_APPLICATION_ID;
private String nodeId = null;
private String incidentNbr = null;
private String CSRCode = null;
private String[] stopCodes = null;
public void setStopCodes(String[] aStopCodes) {
stopCodes = aStopCodes;
public String[] getStopCodes() {
return stopCodes;
[more]
The service build.xml file:
<project name="GIMService" default="all" basedir=".">
<target name="all" depends="ear"/>
<target name="ear">
<servicegen
destEar="GIMService.ear"
contextURI="GIMContext" >
<service
ejbJar="GIMServiceEJB.jar"
targetNamespace="ncr.com"
serviceName="GIMService"
serviceURI="/GIM_URI"
generateTypes="True"
expandMethods="True"
style="rpc"
protocol="http" >
<client
clientJarName="GIMService_client.jar"
packageName="com.ncr.gim.gimservice.client" >
</client>
</service>
</servicegen>
</target>
</project>Hi Jeff,
Looks like the Perl client is using an older (deprecated) schema
namespace "http://www.w3.org/1999/XMLSchema" that is causing this
failure.
Hope this helps,
Bruce
Jeff Carey wrote:
>
To receive input data our Web service defines a JavaBean one element of which is
an array of strings. When a test Java client calls the service method the call
is completed successfully. When a Perl client calls the service method an exception
is returned. If I understand BEA's Web service documentation, it isn't necessary
to do development for the service specifically to enable correct processing of
an array of strings.
In our environment we are running WL 8.1 SP 1.
Please review the problem documentation and explain to me the cause of the exception
and what I must do to prevent it.
Thank you.
The exception:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body><env:Fault><faultcode>env:Server</faultcode><faultstring>Exception
during processing: weblogic.xml.schema.binding.DeserializationException: mapping
lookup failure. type=['http://www.w3.org/1999/XMLSchema']:xsd:string schema context=TypedSchemaContext{javaType=java.lang.String}
(see Fault Detail for stacktrace)</faultstring><detail><bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0"/>weblogic.xml.schema.binding.DeserializationException:
mapping lookup failure. type=['http://www.w3.org/1999/XMLSchema']:xsd:string schema
context=TypedSchemaContext{javaType=java.lang.String}
at weblogic.xml.schema.binding.RuntimeUtils.lookup_deserializer(RuntimeUtils.java:461)
at weblogic.xml.schema.binding.SoapArrayCodecBase.getComponentDeserializer(SoapArrayCodecBase.java:574)
at weblogic.xml.schema.binding.SoapArrayCodecBase.deserialize(SoapArrayCodecBase.java:285)
at weblogic.xml.schema.binding.BeanCodecBase.processElement(BeanCodecBase.java:183)
at weblogic.xml.schema.binding.BeanCodecBase.processAllElements(BeanCodecBase.java:165)
at weblogic.xml.schema.binding.BeanCodecBase.processElements(BeanCodecBase.java:145)
at weblogic.xml.schema.binding.BeanCodecBase.deserialize(BeanCodecBase.java:108)
at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:428)
at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:328)
at weblogic.webservice.core.DefaultPart.toJava(DefaultPart.java:384)
at weblogic.webservice.core.DefaultMessage.toJava(DefaultMessage.java:458)
at weblogic.webservice.core.handler.InvokeHandler.handleRequest(InvokeHandler.java:78)
at weblogic.webservice.core.HandlerChainImpl.handleRequest(HandlerChainImpl.java:143)
at weblogic.webservice.core.DefaultOperation.process(DefaultOperation.java:518)
[more]
The XML generated for the Perl client:
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:namesp2="http://namespaces.soaplite.com/perl"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><namesp1:getWorkOrdersByFilters
xmlns:namesp1="ncr.com"><gIMServiceRequest xsi:type="ns:GIMServiceRequest" xmlns:ns="java:com.ncr.gim.bean.service"><applicationID
xsi:type="xsd:string">REVLOG</applicationID><nodeId xsi:type="xsd:string">00XH</nodeId><stopCodes
xsi:type="namesp2:array" SOAP-ENC:arrayType="xsd:string[2]"><xsd:string xsi:type="xsd:string">06</xsd:string><xsd:string
xsi:type="xsd:string">16</xsd:string></stopCodes></gIMServiceRequest></namesp1:getWorkOrdersByFilters></SOAP-ENV:Body></SOAP-ENV:Envelope>
The XML generated for a test Java client:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body
env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><m:getWorkOrdersByFilters
xmlns:m="ncr.com"><gIMServiceRequest xmlns:n1="java:com.ncr.gim.bean.service"
xsi:type="n1:GIMServiceRequest"><CSRCode xsi:type="xsd:string">987x00</CSRCode><applicationID
xsi:type="xsd:string">GIM</applicationID><incidentNbr xsi:nil="true"/><nodeId
xsi:type="xsd:string">00T5</nodeId><stopCodes soapenc:arrayType="xsd:string[3]"><xsd:string
xsi:type="xsd:string">00</xsd:string><xsd:string xsi:type="xsd:string">01</xsd:string><xsd:string
xsi:type="xsd:string">02</xsd:string></stopCodes></gIMServiceRequest></m:getWorkOrdersByFilters></env:Body></env:Envelope>
The JavaBean:
public class GIMServiceRequest implements Serializable {
private String applicationID = GIMConstants.UNKNOWN_APPLICATION_ID;
private String nodeId = null;
private String incidentNbr = null;
private String CSRCode = null;
private String[] stopCodes = null;
public void setStopCodes(String[] aStopCodes) {
stopCodes = aStopCodes;
public String[] getStopCodes() {
return stopCodes;
[more]
The service build.xml file:
<project name="GIMService" default="all" basedir=".">
<target name="all" depends="ear"/>
<target name="ear">
<servicegen
destEar="GIMService.ear"
contextURI="GIMContext" >
<service
ejbJar="GIMServiceEJB.jar"
targetNamespace="ncr.com"
serviceName="GIMService"
serviceURI="/GIM_URI"
generateTypes="True"
expandMethods="True"
style="rpc"
protocol="http" >
<client
clientJarName="GIMService_client.jar"
packageName="com.ncr.gim.gimservice.client" >
</client>
</service>
</servicegen>
</target>
</project> -
Mapping Lookup for Update/Insert
Hi XI guru,
We're using the Mapping-Lookup-feature for select-statements - it works very fine.
If we use an insert- or update-statement instead, we get an exception.
String Query1 = " ";
Channel channel = null;
DataBaseAccessor accessor = null;
DataBaseResult resultSet1 = null;
// Build the Query String
Query1 ="Update ZID Set MESSAGE_ID = MESSAGE_ID + 1 where ID = '" + a[0] + "'";
try{
//Determine a channel, as created in the Configuration
channel = LookupService.getChannel("Oracle_DB","JDBC_Insert");
//Get a system accessor for the channel. As the call is being made to an DB, an DatabaseAccessor is obtained.
accessor = LookupService.getDataBaseAccessor(channel);
//Execute Query and get the values in resultset
resultSet1 = accessor.execute(Query1);
for(Iterator rows = resultSet2.getRows();rows.hasNext();){
Map rowMap = (Map)rows.next();
result.addValue((String)rowMap.get("MESSAGE_ID"));
catch(Exception ex){
result.addValue(ex.getMessage());
finally{
try{
if (accessor!=null) accessor.close();
catch(Exception e){
result.addValue(e.getMessage());
Exception during processing the payload.Problem when calling an adapter by using communication channel JDBC_Insert (Party: , Service: Oracle_DB, Object ID: 6e9e567c233733929c2d8f31c1bbbba9) XI AF API call failed. Module exception: (No information available). Cause Exception: 'Error processing request in sax parser: Error when executing statement for table/stored proc. 'table' (structure 'statement'): java.sql.SQLException: ORA-00900: invalid SQL statement
'.
com.sap.aii.mapping.lookup.LookupException: Problem when calling an adapter by using communication channel JDBC_Insert (Party: , Service: Oracle_DB, Object ID: 6e9e567c233733929c2d8f31c1bbbba9) XI AF API call failed. Module exception: (No information available). Cause Exception: 'Error processing request in sax parser: Error when executing statement for table/stored proc. 'table' (structure 'statement'): java.sql.SQLException: ORA-00900: invalid SQL statement
'.
at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.execute(AdapterProxyLocal.java:131)
at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.execute(SystemAccessorInternal.java:68)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:149)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:77)
at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:169)
at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:178)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:296)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:211)
at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:496)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Root Cause:
com.sap.aii.af.service.api.AFException: XI AF API call failed. Module exception: (No information available). Cause Exception: 'Error processing request in sax parser: Error when executing statement for table/stored proc. 'table' (structure 'statement'): java.sql.SQLException: ORA-00900: invalid SQL statement
'.
at com.sap.aii.af.service.api.AdapterAccess.sendMsg(AdapterAccess.java:214)
at com.sap.aii.af.service.api.AdapterAccess.execute(AdapterAccess.java:283)
at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.execute(AdapterProxyLocal.java:123)
at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.execute(SystemAccessorInternal.java:68)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:149)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:77)
at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:169)
at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:178)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:296)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:211)
at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:496)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Could you please help to let me know what should I do to fix it?Thank youthe purpose to do this update is, we want to get a interface depended sequense number, every message should have a unique message id, then use JDBC receiver adapter to insert this message to several DB tables, Legacy application program will use these message id to join these tables to get data.
for example: SAP send sales order data to Legacy system, every Sales Order Create and Modification will trigger a message to Leagcy system, Legacy system use Staging table to receive these messages, one table for SO Header,one for Item,one for schedule line for each item. So when Legacy program cannot use SO number as key to join these table, because every change will create a message. That's why we want to maintain a unique message id for every message.
Do you have any other solution to realize this requirement? thank you very much for your help. -
How to create an XQuery for an XML type data source
Hi,
1.I have data contained in an XML format.
Hence I have created a physical data source for XML type data.
2.I have created a logical view to broker data from several disparate physical data sources.I have called this as UnifiedView.
3.I have created a function called getUnifiedView() to obtain data from all the physical sources
4.Upto this point, I have not faced any problems.
5.However when i try writing a simple XQuery for the physical XML datasource such as
$Sh-data/PublicIdentifiers/MSISDN="1234567"
I get result as (For example):
<HSS>
<MSISDN> 1234567 111111 222222 </MSISDN>
</HSS>
Could you please help me getting the where clause output?
I have attached the schema and XML files used for further information.
Regards
VidyaHi mReiche,
I later on resolved the previously mentioned error and try out the XQuery as suggested by you.
for $MSISDN in ns0:Sh-data()/PublicIdentifiers/MSISDN
where $MSISDN="1234567"
return
<HSS>
<MSISDN>{data($MSISDN)}</MSISDN>
</HSS>
It works! Thanks.
Now i am trying to retrieve data from 2 XML documents and an LDAP query.
I have the following data sources:
1.LDAP queried by Java Function
2.HSS xml
3.Presence xml
I want to match the telephoneNumber of the LDAP with MSISDN in the HSS.xml.
Next i want to match the SIP_URI in the HSS.xml with Contact of the Presence.xml
Given below is the XQuery which i have written to achieve the above:
for $x0 in ns5:FindDN($str_mailId)
for $Sh-Data in ns2:Sh-Data()
where $x0 = $Sh-Data/PublicIdentifiers/MSISDN
for $presence in ns3:presence()
where $Sh-Data/Sh-IMS-Data/SCSCFName = $presence/ns4:tuple/ns4:contact
return
On executing this XQuery i am getting the following error:
java.lang.NullPointerException: null
at weblogic.xml.query.types.XQueryAtomicType.commonSuperTypeOf(XQueryAtomicType.java:150)
at weblogic.xml.query.types.XQueryType.comparisonTypeOf(XQueryType.java:324)
at weblogic.xml.query.runtime.compare.GeneralAtomicComparison.compare(GeneralAtomicComparison.java:50)
at weblogic.xml.query.runtime.compare.ComparisonIterator.fetchNext(ComparisonIterator.java:50)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.logic.BoolEffValue.exec(BoolEffValue.java:51)
at weblogic.xml.query.runtime.logic.BoolEffValue.fetchNext(BoolEffValue.java:47)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.core.IfThenElse.fetchNext(IfThenElse.java:79)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.core.CountMapIterator.fetchNext(CountMapIterator.java:162)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.core.CountMapIterator.fetchNext(CountMapIterator.java:162)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.sequences.Exists.fetchNext(Exists.java:40)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.core.IfThenElse.fetchNext(IfThenElse.java:79)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.core.LetIterator.fetchNext(LetIterator.java:133)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.core.LetIterator.fetchNext(LetIterator.java:133)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.querycide.QueryAssassin.fetchNext(QueryAssassin.java:54)
at weblogic.xml.query.iterators.GenericIterator.peekNext(GenericIterator.java:151)
at weblogic.xml.query.runtime.qname.InsertNamespaces.fetchNext(InsertNamespaces.java:161)
at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:113)
at weblogic.xml.query.runtime.core.QueryIterator.fetchNext(QueryIterator.java:127)
at weblogic.xml.query.iterators.GenericIterator.hasNext(GenericIterator.java:134)
at weblogic.xml.query.xdbc.util.Serializer.serializeItems(Serializer.java:142)
at com.bea.ld.server.QueryInvocation.getResult(QueryInvocation.java:461)
at com.bea.ld.EJBRequestHandler.executeFunction(EJBRequestHandler.java:346)
at com.bea.ld.ServerBean.executeFunction(ServerBean.java:108)
Please find attached the XML documents which i am using.
Could you pls let me know how to resolve this. -
Binding ADF UI to a complex XML Type – Development Productivity, State Mgmt
Binding ADF UI to a complex Web Service – Development Productivity, Managing State, Etc.
For those scenarios when ADF UI has to be bound to a complex XML type, it seems that the direction taken by the ADF development team was to generate data-controls that map to complex XML types.
The major problem with this approach is the fact that application server does not manage state. For example, If application has to submit a purchase order to a web service then application server has to manage the shopping card state until its ready to be submitted.
In some previous forum threads it had been suggested that using generated data-controls is a “quick and dirty” solution for accessing web services and that a proper solution is to use generated Java Proxy Interface.
That implies many manually constructed entity objects, associations and overridden doDML methods, which is far less productive compared to entity objects generated from a database schema.
Suggestion and a Question for the ADF development team
From the logical model standpoint, there is no difference in between the XML schema and DB schema. Therefore, it is possible to generate entity objects and associations for XML Types of XML schema the same way it’s done for tables of Database schema. The only difference is serialization of CRUD operations on entity objects.
One way to handle this is:
- Generate Application Module for a complex XML type. This application module should have methods for marshaling to/from corresponding XML type.
- Generate entity object for each subtype within the complex XML type. In case of nested subtypes, generate association to a parent type.
- Generate data control with actions that are bound to web service operations and code that serializes request message from corresponding AM and de-serializes response message to corresponding AM.
This way, ADF would offer the same productivity for the SOA development as one its currently offering for the ORM development.
Until the time when something like this is available, what would be the best approach for binding ADF UI to web services?
Feedback is greatly appreciated.
Boro Petrovic
Edited by: wds12518 on Jan 25, 2010 11:49 AMWe have similar issues as our big portion of the UI is based on WS. We found that there is no easy way to map entity object structure to complex XML type (one EO can based on one flat type or domain can't be bound to UI directly). Oracle PMs, is there any better solution or future plans to address this issue?
-
Is Mapping Lookup table possible with IDOC to FIle scenario
Hi all,
Need suggestion, I am using SP16
My sceanrio is IDOC to FIles, and have to use a Mapping Lookup tables for some of the fields within the mapping...
'Crossref: PlantLoc_to_WhseComDiv. Value mapping lookup to take two fields from SAP and convert to WMS 3-digit value'
How to go with this, since i have checked in SAP library that it is for only RFC,JDBC,SOAP adapters ...
Need u r valuable inputs,
Regards,
sridharYou can use RFC or SOAP or JDBC lookup in your mapping.Why not?..It does not mean that we use the lookups only in RFC secnarios.You can use them in any scenario.
-
XSLT samples for XML- ABAP mapping
Hi all,
Does anyone have a XSLT samples for XML->ABAP mapping ?
regardsfirst create XSLT program by copy pasting the below given code and give the program name as "Y_TEST"
<b>XSLT code</b>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:output indent="yes"/>
<xsl:template match="NewDataSet">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<OUTTAB>
<xsl:for-each select="Table">
<OUTTAB1>
<AIRPORTCODE>
<xsl:value-of select="AirportCode"/>
</AIRPORTCODE>
<CITYOFAIRPORTNAME>
<xsl:value-of select="CityOrAirportName"/>
</CITYOFAIRPORTNAME>
<COUNTRY>
<xsl:value-of select="Country"/>
</COUNTRY>
<COUNTRYABBRIVATION>
<xsl:value-of select="CountryAbbrviation"/>
</COUNTRYABBRIVATION>
<COUNTRYCODE>
<xsl:value-of select="CountryCode"/>
</COUNTRYCODE>
<GMTOFFSET>
<xsl:value-of select="GMTOffset"/>
</GMTOFFSET>
<RUNWAYLENGTHFEET>
<xsl:value-of select="RunwayLengthFeet"/>
</RUNWAYLENGTHFEET>
<RUNWAYELEVATIONFEET>
<xsl:value-of select="RunwayElevationFeet"/>
</RUNWAYELEVATIONFEET>
<LATITUDEDEGREE>
<xsl:value-of select="LatitudeDegree"/>
</LATITUDEDEGREE>
<LATITUDEMINUTE>
<xsl:value-of select="LatitudeMinute"/>
</LATITUDEMINUTE>
<LATITUDESECOND>
<xsl:value-of select="LatitudeSecond"/>
</LATITUDESECOND>
<LATITUDENPEERS>
<xsl:value-of select="LatitudeNpeerS"/>
</LATITUDENPEERS>
<LONGITUDEDEGREE>
<xsl:value-of select="LongitudeDegree"/>
</LONGITUDEDEGREE>
<LONGITUDEMINUTE>
<xsl:value-of select="LongitudeMinute"/>
</LONGITUDEMINUTE>
<LONGITUDESECONDS>
<xsl:value-of select="LongitudeSeconds"/>
</LONGITUDESECONDS>
<LONGITUDEEPERW>
<xsl:value-of select="LongitudeEperW"/>
</LONGITUDEEPERW>
</OUTTAB1>
</xsl:for-each>
</OUTTAB>
</asx:values>
</asx:abap>
</xsl:template>
</xsl:stylesheet>
<b>just create a type 1 program and paste the below given code.</b>
report y_consume_webservice .
data: wf_user type string .
data: wf_password type string .
types: begin of outtab1 ,
airportcode(6) ,
cityofairportname(50),
country(30) ,
countryabbrivation(10),
countrycode(6) ,
gmtoffset(10) ,
runwaylengthfeet(15),
runwayelevationfeet(15),
latitudedegree(10) ,
latitudeminute(10) ,
latitudesecond(10) ,
latitudenpeers(10) ,
longitudedegree(10) ,
longitudeminute(10) ,
longitudeseconds(10) ,
longitudeeperw(10) ,
end of outtab1 .
data: outtab type table of outtab1.
data: wf_o like line of outtab .
data: g_okcode like sy-ucomm .
data: my_container type ref to cl_gui_custom_container .
data: g_dock type ref to cl_gui_docking_container .
data: mygrid type ref to cl_gui_alv_grid .
data: wf_field_cat type lvc_t_fcat .
data: wf_field_cat_wa like line of wf_field_cat ,
wf_is_layout type lvc_s_layo .
data: wf_fld_cat type slis_t_fieldcat_alv .
data: wf_fld_cat_wa like line of wf_fld_cat .
data: wf_repid like sy-repid .
data: int_tab_name type slis_tabname .
data: xslt_err type ref to cx_xslt_exception .
constants:
* encoding for download of XML files
encoding type string value 'utf-8' .
data: rlength type i,
txlen type string .
data: http_client type ref to if_http_client .
data: wf_string type string .
data: wf_string1 type string .
data: wf_proxy type string ,
wf_port type string .
selection-screen: begin of block a with frame .
parameters: uri2(132) type c lower case .
selection-screen skip 1.
parameters: user(50) lower case,
password(50) lower case ,
p_proxy(100) lower case default 'proxy.xxx.com' ,
p_port(4) default '80'.
selection-screen: end of block a .
at selection-screen output.
loop at screen.
if screen-name = 'PASSWORD'.
screen-invisible = '1'.
modify screen.
endif.
endloop.
start-of-selection .
clear wf_string .
concatenate
'<?xml version="1.0" encoding="utf-8"?>'
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
'<soap:Body>'
'<GetAirportInformationByCountry xmlns="http://www.webserviceX.NET">'
'<country>' uri2 '</country>'
'</GetAirportInformationByCountry>'
'</soap:Body>'
'</soap:Envelope>'
into wf_string .
clear :rlength , txlen .
rlength = strlen( wf_string ) .
move: rlength to txlen .
clear: wf_proxy, wf_port .
move: p_proxy to wf_proxy ,
p_port to wf_port .
call method cl_http_client=>create
exporting
host = 'www.webservicex.net'
service = '80'
scheme = '1'
proxy_host = wf_proxy
proxy_service = wf_port
importing
client = http_client.
http_client->propertytype_logon_popup = http_client->co_disabled.
wf_user = user .
wf_password = password .
call method http_client->authenticate
exporting
proxy_authentication = 'X'
username = wf_user
password = wf_password.
call method http_client->request->set_header_field
exporting
name = '~request_method'
value = 'POST'.
call method http_client->request->set_header_field
exporting
name = '~server_protocol'
value = 'HTTP/1.1'.
call method http_client->request->set_header_field
exporting
name = '~request_uri'
value = '/airport.asmx'.
call method http_client->request->set_header_field
exporting
name = 'Content-Type'
value = 'text/xml; charset=utf-8'.
call method http_client->request->set_header_field
exporting
name = 'Content-Length'
value = txlen.
call method http_client->request->set_header_field
exporting
name = 'SOAPAction'
value = 'http://www.webserviceX.NET/GetAirportInformationByCountry'.
call method http_client->request->set_cdata
exporting
data = wf_string
offset = 0
length = rlength.
call method http_client->send
exceptions
http_communication_failure = 1
http_invalid_state = 2.
call method http_client->receive
exceptions
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3.
clear wf_string1 .
wf_string1 = http_client->response->get_cdata( ).
replace all occurrences of
'<' in wf_string1 with '<' .
replace all occurrences of
'>' in wf_string1 with '>' .
replace all occurrences of
'xmlns=' in wf_string1 with 'xmlns:xsl=' .
try .
call transformation (`Y_TEST`)
source xml wf_string1
result outtab = outtab.
catch cx_xslt_exception into xslt_err.
data: s type string.
s = xslt_err->get_text( ).
write: ': ', s.
stop.
endtry .
break-point .
Try this and give me your feedback.
Regards
Raja -
Xml name space for generated types
By default the autotype or the servicegen ant task seem to be creating a namespace
from the java package name (like java:com.ventaso.external.common) for xml mapping
of user defined java classes. Is there a way to change this to name space I want
? Specifying the targetnamespace doesn't seem to help.
Thanks,
SivaThe targetNamespace is for webservice and not for the user defined classes.
Sorry for the confusion
Ajay
"Ajay" <[email protected]> wrote in message
news:[email protected]..
There is a targetNamespace attribute in the autotyp ant task. But there
was a bug in 8.1. Contact the support for a patch.
The following mail explains that
This looks like a bug. There is an undocument, not officially
supported workaround: add the following java doc
to yours source code -
* @wlws:webservice targetNamespace="http://foo.bar"
public class MyService {
Details here:
http://www.manojc.com/tutorial/sample3/source2wsdd.html
Regards,
-manoj
http://manojc.com
"Mark Fine" <[email protected]> wrote in message
news:[email protected]..
The attribute targetNamespace (of the autotype task) doesn't seem to putany
information into the types file and later my deployment descriptor (viathe
source2wsdd task) contains an invalid targetNamespace attribute with a
http://tempuri.org:
eg.
<web-services>
<web-service name="IndexService"
targetNamespace="http://tempuri.org/"
uri="/IndexWebService">
I don't think this causes any problems but there should be a way tospecify
the namespace.
Has anyone else seen this is WLS8.1?
"Siva" <[email protected]> wrote in message
news:[email protected]..
By default the autotype or the servicegen ant task seem to be creating anamespace
from the java package name (like java:com.ventaso.external.common) for
xml
mapping
of user defined java classes. Is there a way to change this to name
space
I want
? Specifying the targetnamespace doesn't seem to help.
Thanks,
Siva -
Mapping lookups need to be done for sender or for reciever?
Hi All,
i have a small doubt do we need to perform mapping lookups for sender or reciever? if Reciever then why?
Regards
SamiHi,
1)what is lookups
Lookups are used to identify / request the data from mapping , i mean interupting the process and looking for data which was stored in some where and get that data and comback to process and continue with that data.
2.why we can use for lookups.
We will use these type of lookups in Message mapping for refering DB Lookup for data base which is not SAP, RFC lookups for SAP data
How we have to create the lookups?
Check this weblogs with some screenshots on how to achieve this:
/people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
/people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
/people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
/people/morten.wittrock/blog/2006/03/30/wrapping-your-mapping-lookup-api-code-in-easy-to-use-java-classes
Satya -
How to combine "Object-to-XML (OXM)" and "Direct to XML Type" mapping?
hi
If I have an XMLType column in my table (wich I can map using TopLink) and I have defined the structure of the contents of this XMLType column using XML Schema (wich I can map using Toplink), how can I combine both types of TopLink mappings "as transparently as possible"?
for "Object-to-XML (OXM)" mapping
see http://www.oracle.com/technology/products/ias/toplink/technical/tips/ox/index.htm
for "Direct to XML Type" mapping
see http://www.oracle.com/technology/products/ias/toplink/doc/1013/main/_html/relmapun004.htm#CHDFIFEF
thanks
Jan VerveckenThanks for your reply James Sutherland.
Although I haven't used a "TopLink Converter" before, this seems like a good idea.
The thing is that the "TopLink Workbench Editor" for my "Direct to XML Type" mapping doesn't have a "Converter" tab, some other mapping type editors do have such a "Converter" tab.
I'm not sure if I completely understand how such a "TopLink Converter" is supposed to work. How many attributes do I need in the "XMLRow" Java object for the "MY_XML" column in the "XML_TABLE" table I try to map to?
I suppose I should try to get a situation where the "XMLRow" Java object has an "myXML" attribute of Java class type "MyXML" (where "MyXML" has been mapped to an XML Schema), not?
So do I also still need an attribute "myXMLDocument" of type org.w3c.dom.Document as I do now for the "Direct to XML Type" mapping?
Oh, by the way ... for anyone who hits this forum thread looking for the reason why the TopLink Workbench reports the problem "Attribute must be assignable to java.lang.String, org.w3c.dom.Document, or org.w3c.Node" while your attribute is of such a type, read this forum post
Re: Toplink WB 10.1.3 - Aggregate field mapping bug and XMLType question
For me the "Direct to XML Type" mapping works fine, just ignoring the waring. This is supposed to be bug number 5071250.
thanks
Jan Vervecken -
How to Parse the XML generated by Mapping LookUp - RFC API
Hi Friends,
I m using the link by Michal Krawczyk for Mapping Lookups - RFC API
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
How to parse the XML created in the target node ?
Regards
PraveshHi,
Check the second half of my code in this blog,
/people/bhavesh.kantilal/blog/2006/11/20/webservice-calls-from-a-user-defined-function
It deals with webservice call's but almost the same for RFC.
Regards
Bhavesh -
TopLink : attribute-mapping direct-xml-type-mapping
hi
Using TopLink Workbench 10g Release 3 (10.1.3.0.0) Build 060118 it is possible to configure a "Direct to XML Type" mapping.
see http://www.oracle.com/technology/products/ias/toplink/doc/1013/main/_html/relmapun004.htm#CHDFIFEF
In the TopLink map this results in a
<opm:attribute-mapping xsi:type="toplink:direct-xml-type-mapping">Is there a way to configure this kind of attribute mapping using JDeveloper?
thanks
Jan VerveckenHi Paul,
The problem you're going to hit trying to do this with a TransformationMapping in 904 (as in my other post) is that during the UnitOfWork commit, when TopLink is checking for changes a .equals will end up being called on an XMLType instance which will throw a NullPointerException (in oracle.sql.Datum I think).
One way to work around this (depending on the requirements for your app) is to set the isMutable flag on the TransformationMapping to false. This flag indicates that the value in the object's attribute isn't going to be changed, so we don't bother trying to check to see if it's changed. This will allow you to do reads, inserts and deletes with no problems.
The downside is that if you need to be able to change the XML content in your objects model and do an update of the row, TopLink will never detect a change and never issue an update of the XMLType field.
Incidentilly, if you happen to hit the same issue you had with the DirectToXMLTypeMapping where you were getting back an instance of java.sql.Opaque instead of the expected oracle.xdb.XMLType from JDBC, you should be able to handle that case in your AttributeTransformer by doing
XMLType myXML = XMLType.createXML(myOpaque)
Document = myXML.getDocument();
Hope this helps
Matt MacIvor -
Core Data Services in ABAP : No URI-Mapping defined for object type DDLS
Hi ,
When creating a DDL source , I get the error
" No URI-Mapping defined for object type DDLS and object name ZCDSV_01_06".
Can you please suggest what the issue could be?
Thanks,
Chakram GovindarajanNow I am able to proceed to the next step. Not sure how this started working. However, I get the below error when I open the DDL source editor for one particular ABAP system added in the eclipse environment. I however do not get the error when I open the DDL source editor for another system ( AH4) .I am providing the log error details . I updated the ADT installation. However the issue has not been resolved. Also I tried implementing the Note: 1834948. However I cannot find the option "Team -> Share project..." in the ABAP project.
Thanks,
Chakram Govindarajan -
Mapping problem for IDOC Type DESADV
Dear all
I need to change Segment E1EDP07 in the message type DESADV.
I should concatenate VBELN and VGPOS into BSTNK.
I tried to do this with BD79 (Rules for Data Converting). This seems not to work as I can get only 1 sender Field.
So I tried to use the userexit EXIT_SAPLBD11_001, but it seems that this is not used. I have set a break-point for debugging and treated the IDOC with RSNAT00 without any stop.
Do you have any ideas how I can do this?
Herbert>
Herbert Schlup wrote:
> I have 2 entries for my DWSADV01
>
> 1 with FM IDOC_INPUT_DESADV and the other with IDOC_INPUT_DESADV1
With the first one, you cannot do much, as there is no user exit in it. But in the second one, there is a user exit when the idoc data is parsed the exit name is EXIT_SAPLV55K_004 and is called in the subroutine DESADV_IDOC_PARSE in the function.
But please note that the function IDOC_INPUT_DESADV1 is used with process code DELS for message type DESADV and Idoc type DELVRY01 and IDOC_INPUT_DESADV is used with process code DESA and message type DESADV with IDoc type DESADV01. So you might be using IDOC_INPUT_DESADV function and unfortunately there are no user exits to handle your requirement.
My advice would be to check with the source system or the middleware to define the mapping of these fields according to your requirement. But if that is not possible, then you need to first check which message type and IDoc type you are receiving and proceed accordingly
KR,
Advait
Maybe you are looking for
-
Server crashes / unresponsible due to mail activity
I have a growing problem with a mailserver (10.5.6) * There are 200 users (mac+win) that all connect to the server using IMAP. * The HW is a intel 2 x 2 GHz xeon with 5 GB ram * The mailstorage is on a 2,3 TB RAID 5 xraid currently taking up ca 120 G
-
In iTunes I deleted a podcast some time ago. Now when I try to sync my iPod I get a msg 'Podcasts on the iPod cannot be synced because all of the podcasts selected for syncing no longer exist. I guess when I deleted the podcasts they were still sho
-
Splitting file names using delimiter question
I have a very simple question. I am trying to set the variable $fnameYear to whatever is after the third '-'. My problem is that if there is a space in the name it wont work correctly. How can i use a delimeter so that it splits after the '-' for onl
-
Entire Dreamweaver-designed site not showing up in IE
Hey there, I'm a novice web designer building an html website. This is my 4th website I've built using these techniques and for some reason only the background is showing up on Internet Explorer and none of the content. The site works fine in Mozilla
-
I was wondering what the syntax is for using a forall with a array. I want to do something like below but this doesnt work correctly. forall i in 1 .. p_array.COUNT insert into test_object (attr_id, attr_1, attr_2) values (p_array(i).attr_id, p_array