XML Beans in Web Services / .xsd compilation
Hello friends -
I've been told of many wonderful things that can be accomplished by using XML
beans in web service style integrations. However, I'm running into trouble actually
getting anything done and was hoping someone could give me a few pointers. I'm
trying to work inside Workshop 8.1 with the BEA server (i.e., not platform)
- Documentation seems to reference the ability to compile an .xsd in order to
get an XML Bean class representing your XML. However, I cannot find anything
telling me how to do this. Is this supported in Workshop?
- I'm only showing some classes referenced in the XML Beans Javadoc area as available
inside my workshop IDE. For example, com.bea.xml.XmlBeans is not available.
Is this a result of me using Server as opposed to the more complete Platform
product?
- Does anyone have a simple example .jws that utilizes a XML bean as an input
or output? If so, I'd love to see it.
Thanks so much.
CM
Hi,
I thought passing XMLs was supported using SOAP. In this case, the XML data in the SOAP body is type "string" and the namespace of the XML inside separates it from the rest of the SOAP package. Can I do the same with...say... Web Dynpro where the WSDL is used to generate proxy classes. How do I add a namespace in the SOAP header so that I can add the XML in the body?
I propose that life would be much easier if a datatype called XML, or some option before the WSDL is imported to create proxy classes is available which creates a wrapper for adding XML data. Far fetched...but can be done. Whats you opinion?
Regards,
Nirav Mehta
Similar Messages
-
Hello,
I want to configure taglibs in my web.xml file.
The beginning of the file looks like this:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">I placed the following:
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>element just after the welcome-file-list element. When I "validate XML" in Netbeans I get :
cvc-complex-type.2.4.a: Invalid content was found starting with element 'taglib'. One of '{"http://java.sun.com/xml/ns/j2ee":description, "http://java.sun.com/xml/ns/j2ee":display-name, "http://java.sun.com/xml/ns/j2ee":icon, "http://java.sun.com/xml/ns/j2ee":distributable, "http://java.sun.com/xml/ns/j2ee":context-param, "http://java.sun.com/xml/ns/j2ee":filter, "http://java.sun.com/xml/ns/j2ee":filter-mapping, "http://java.sun.com/xml/ns/j2ee":listener, "http://java.sun.com/xml/ns/j2ee":servlet, "http://java.sun.com/xml/ns/j2ee":servlet-mapping, "http://java.sun.com/xml/ns/j2ee":session-config, "http://java.sun.com/xml/ns/j2ee":mime-mapping, "http://java.sun.com/xml/ns/j2ee":welcome-file-list, "http://java.sun.com/xml/ns/j2ee":error-page, "http://java.sun.com/xml/ns/j2ee":jsp-config, "http://java.sun.com/xml/ns/j2ee":security-constraint, "http://java.sun.com/xml/ns/j2ee":login-config, "http://java.sun.com/xml/ns/j2ee":security-role, "http://java.sun.com/xml/ns/j2ee":env-entry, "http://java.sun.com/xml/ns/j2ee":ejb-ref, "http://java.sun.com/xml/ns/j2ee":ejb-local-ref, "http://java.sun.com/xml/ns/j2ee":service-ref, "http://java.sun.com/xml/ns/j2ee":resource-ref, "http://java.sun.com/xml/ns/j2ee":resource-env-ref, "http://java.sun.com/xml/ns/j2ee":message-destination-ref, "http://java.sun.com/xml/ns/j2ee":message-destination, "http://java.sun.com/xml/ns/j2ee":locale-encoding-mapping-list}' is expected. [53]
cvc-complex-type.2.3: Element 'web-app' cannot have character [children], because the type's content type is element-only. [71]
XML validation finished.Indeed, looking at the web-app_2_4.xsd I cannot find a description for the taglib element.
Where should a put taglibs ? Is it enough to include them in every JSP so I don't need to place them in web.xml ?
Thank you.
Vlad.web.xml 2.4 uses a <jsp-config> to enclose the
<tag-lib>
<jsp-config>
<tag-lib>
</tag-lib>
</jsp-config>I believe that is the syntax. I will check when I get
to my server comp.You are right. That's how it's done. Thanks a lot for the reply.
I hope there were good reasons to break compatibility with the old format. There are a lot of examples out there that use the old one. Without knowing the reason for such a change, I find it very annoying.
Thanks again
Vlad. -
How do I send XML to a web service?
I am brand new to Flex. I am trying to write a program that
uses web services to send and receive data. I have gotten it so
that it can receive XML from the web service. However, I also need
to send it, and I am stuck.
I have tried the following code:
<mx:WebService id="MyService"
wsdl="
http://localhost/FlexTest/service1.asmx?WSDL"
useProxy="false"
result="resultHandler(event)">
<!-- Input: XML Document...Output: String -->
<mx:operation
name="HelloPersonAcceptsXmlDocumentReturnsString">
<mx:request>
<personXmlDoc>xmlPerson</personXmlDoc>
</mx:request>
</mx:operation>
<!-- Input: XML Node...Output: String -->
<mx:operation
name="HelloPersonAcceptsXmlNodeReturnsString">
<mx:request>
<personXmlNode>
xmlPerson.Person
</personXmlNode>
</mx:request>
</mx:operation>
<!-- Input: String (XML Format)...Output: String -->
<mx:operation
name="HelloPersonAcceptsXmlStringReturnsString">
<mx:request format="xml">
<personXmlString><p1:Person xmlns:p1="
http://impact-tech.com/schemas/FlexTest"><p1:ID>f1bd45fc-544b-489d-83cf-349d1f9740ec</p1:I D><p1:FirstName>Joe</p1:FirstName><p1:MiddleName>C.</p1:MiddleName><p1:LastName>Blow</p1:L astName><p1:BirthDate>2006-09-11T14:03:04.4755443-04:00</p1:BirthDate><p1:IsMarried>false< /p1:IsMarried><p1:NumChildren>0</p1:NumChildren><p1:NetWorth>100000</p1:NetWorth></p1:Pers on></personXmlString>
<!--<personXmlString>{xmlPerson.toXmlString()}</personXmlString>-->
<!--<personXmlString>{txInput.text}</personXmlString>-->
</mx:request>
</mx:operation>
</mx:WebService>
In the first operation,
"HelloPersonAcceptsXmlDocumentReturnsString", I try to send an XML
object. In the second operation,
"HelloPersonAcceptsXmlNodeReturnsString", I try to send the root
node, xmlPerson.Person. In both cases, what actually gets sent is
literally the text that I put in the <request>node, not the
object that text is referencing. So for the first, "xmlPerson" gets
sent to the target, not the XML doc that it refers to.
In the third operation, I tried three different things, and
two are commented out. I tried to reference the XML object using
the toXmlString() method, but again, it literally sent the text
"xmlPerson.toXmlString()". I tried the curly-brace binding, but
then nothing gets sent to the web service. I also tried building
the actual XML document node by node, with values, but I get an
error from the web service saying it can't be parsed because there
is an illegal character at Line 1, Position1. The only thing which
has worked has been to add an Input Text box, copy-and-paste the
exact same XML structure as I tried to manually build, and then use
binding to the text property of the InputText control. Then it
works fine. But I can't actually do that, it's just for testing.
So my question is how to make a <request> node that is
part of the web service operation that references an object and
sends the value of that object to the web service, not literally
whatever text is typed in that node. I looked at the Web Services
and Data Binding sections of the help, and didn't see any examples
covering this. Everything was far more simplistic with binding to
controls. Can anyone help a newbie, please?I don't understand how this isn't a Flex Builder question,
since it has to do with how Flex Builder interacts with web
services and how objects are used in binding in MXML.
But at any rate, I got this code to work, for future
reference of anyone else looking in this forum:
Declaring a custom class in MXML was key to allow proper
binding:
<CustomClasses:Person id="testPerson" xmlns:local="*"/>
<mx:WebService id="MyService"
wsdl="
http://66.129.123.211/FlexTest/service1.asmx?WSDL"
useProxy="false"
result="resultHandler(event)">
<!-- Input: XML Document...Output: String -->
<mx:operation
name="HelloPersonAcceptsXmlDocumentReturnsString">
<mx:request>
<personXmlDoc>{testPerson.GetXmlDoc()}</personXmlDoc>
</mx:request>
</mx:operation>
</mx:WebService> -
Download a XML file from Web Services Using Flex
Hi All...
I am new for flex, im developing a windows application using Flex/Air, i have connected the web services with user authentication, now I want to download a xml file using web services in flex,
how can i do this?? please reply...
Thanks in advance
VasanthHi All....
I have done this myself using sample tutorials...
here is the code for your reference guys
plyLoginName = txtEmailIdDownload.text;
var urlpath:String = new String("your url p?LoginName=");
urlpath = new String(urlpath.concat(plyLoginName));
urlpath = new String(urlpath.concat("&PlayerType="));
urlpath = new String(urlpath.concat(chkseasonvalue));
Alert.show(urlpath);
var request:URLRequest = new URLRequest(urlpath)
var fileRef:FileReference = new FileReference();
fileRef.download(request,"yourfilename.xml");
Alert.show('File downloaded Successfully');
txtEmailIdDownload.text = "";
txtPWDownload.text = "";
thanks
Vasanth -
How to create a proxy to retrieve the xml file from web services
Hi Every one,
We have a requirment where we receive a xml file from Kenexa, a third party HR tool using a middleware tool. from SAP side We have to create a proxy to retrieve the xml file from web services by initiating call through middleware tool i used earlier.
these are the steps i intend to follow to accomlish the requirement.
1) middleware tool has to initiate the call to kenexa web services to receive the xml file when it is available.
2) On SAP we need to create a ABAP Proxy service provider to middleware where this file can be received.
Can any one guide me how i can create a proxy to retrieve the xml file from web services by initiating call through other middlewre (its not PI).
Any help would be really great, i am not a ABAP developer, so please help me with this. Thanks.Thank for reply.
The computers are in different locations, but yes it's possible, the users in this enviroment are all local administrator of the machines, and we can distribute the script centrally from the DC automatically
Acrobat use Java, right? I'm not so expert in java, but something about it could not be so difficult to manage.
Do you know some place where i can get some info about JS and acrobat? -
Return XML document through Web Service?
Hello,
Is it possible to return a XML document from a web service?
For example, I have a Oracle Report that outputs in XML format, is it possible to return that through a web service?
Any suggestions or pointers will be most appreciated.
NilanHi Nilan,
You can see a simple example here.,on how to pass and receive XML elements as web service params.
http://otn.oracle.com/sample_code/tech/java/codesnippet/webservices/docservice/content.html
A tutorial on Using Web Services with Oracle9i Reports
http://otn.oracle.com/tech/webservices/htdocs/series/reports/content.html
Regards
Elango. -
Session bean as web service using JAXB
Hi all,
can anybody answer my question:
I have created java classes from XSD files using JDeveloper JAXB compilation. Is it possible to use these classes as parameters for webservice created as ejb3 session bean?
I'have tried but got this error when invoked web service method:
<env:Body>
<env:Fault>
<faultcode>env:Client</faultcode>
<faultstring>Caught exception while handling request: deserialization error: java.lang.NullPointerException</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>
thanks,
AigarsHi Torstein,
<i>Seems to me that the problem is related to the msg sent to AE:
"HTTP response contains status code 401 with the description Unauthorized XML tag Envelope missing in SOAP message header (SAP XI Extension)"
</i>
According to you, the problem occurs within the SOAP envelope. Does your incoming SOAP message looks like the one below here?
If that's not the case, then make sure your SOAP/Web Service client is sending a valid SOAP envelope/request (like the sample below) to XI.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- Inbound Message -->
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
<SOAP:Header/>
<SOAP:Body>
<ns1:WebServiceRequest xmlns:ns1='http://company.com/xi/webservice/myws' SOAP:actor='http://schemas.xmlsoap.org/soap/encoding/' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<Customer xsi:type='xsd:string'>000025</Customer>
<CompanyCode xsi:type='xsd:string'>BE01</CompanyCode>
<KeyDate xsi:type='xsd:string'>20050310</KeyDate>
<Selection>
<OpenItems xsi:type='xsd:string'>X</OpenItems>
<ClearItems xsi:type='xsd:string'></ClearItems>
<GLItems xsi:type='xsd:string'></GLItems>
<Dunning>
<From xsi:type='xsd:string'>A</From>
<To xsi:type='xsd:string'>Z</To>
</Dunning>
</Selection>
</ns1:WebServiceRequest>
</SOAP:Body>
</SOAP:Envelope>
Cheers,
R. -
How can I post data (via soap/xml) to a web services?
Please help. I am new to this concept.
The web service runs at (not an actual website name) -- https://something.someone.sometms.com/cgibin/somthing.exe?Script=/someapp/some_interfaces/webservice/ws_main.wml
The soap/xml output expected will lok similar to:
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<d1:HereIsSomeData xmlns:d1="http://www.vendorname.com/namespace">
<InputStruct>
<HereMineData>
<HereIsDataStruct>
<Resource>SomeResource</Resource>
<Date>2006-02-27</Date>
<SomeInterval>1205</SomeInterval>
<SomeMtrMW>5</SomeMtrMW>
</HereIsDataStruct>
<HereIsDataStruct>
<Resource>SomeResource</Resource>
<Date>2008-02-27</Date>
<SomeInterval>1405</SomeInterval>
<SomeMtrMW>5</SomeMtrMW>
</HereIsDataStruct>
</InputStruct></d1:HereIsSomeData>
</soap:Body>
</soap:Envelope>
The data is in regular table with 4 columns (not an xml schema- table).And what does soap/xml have to do with Oracle?
You should post this thread in the appropiate soap/xml forum to get some adequate help. -
Web service model -Compile error
Hi,
I am using NWDS 7 to create a Web dynpro application. When i imported the web service model, i get compile error on the proxy classes generated. like javax.xml.rpcc not found etc etc. Should we add some extra jar files to successfully compile it?
Any help?
regards,
ShabeerHope this will help in case of DCs
https://forums.sdn.sap.com/click.jspa?messageID=2452528
Regards, Anilkumar -
How to get a collection of beans using web services
Hi,
I'm new to SOAP and Web Services I'd like to know whether the following is possible
or not.
I've created an EJB with this business interface:
public interface Users implements EJBObject {
public User[] getUsers( ) ...
Where the User object is a bean with some properties:
public User implements Serializable {
public void setName( ... ) ...
public String getName( ) ...
public void setAddress( ... ) ...
public String getAdress( ) ...
I've create the ejb-jar.xml and weblogic-ejb-jar.xml that contain the definition
of my EJB and then I try to deploy the web services using the ant task 'wsgen'.
I get the following exception:
org.xml.sax.SAXException: Could not find a codec that understood how to convert
class [LUser; using http://schemas.xmlsoap.org/soap/encoding/
: [ CodecFactory: http://xml.apache.org/xml-soap/literalxml=null, http://schemas.xmlsoap.org/soap/encoding/=null,
=null]
Can someone help to resolve this ? Also, I'd like to know if it's possible that
a web service return a collection of beans as shown above ?
Thanks for your help.
Ludovic.Java beans are serialized/deserialized by the soap encoding codec
itself. you dont have to write custom encoders. I think the error
is because you dont have the java bean class on the server side.
Java bean class file should be in the classpath or it should be
added to the ejb jar file.
thanks,
-manoj
Ludovic Deravet wrote:
Thanks for your help. Indeed, that was my problem.
But now I'm facing this one:
[SOAPException: faultCode=SOAP-ENV:Client; msg=No Deserializer found to
deserialize a 'urn:local:ns0:return' using encoding style 'http://sch
emas.xmlsoap.org/soap/encoding/'.;
targetException=java.lang.IllegalArgumentException: No Deserializer found to
deserialize a 'urn:local:ns0:
return' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.]
at org.apache.soap.rpc.Call.invoke(Call.java:246)
at com.webservices.WSClient.main(WSClient.java:38)
Did you implement your own deserializer to read your array of beans (called
Data) ? Or do I need to do something else ?
Thanks.
Ludovic.
"manoj cheenath" <[email protected]> wrote in message
news:[email protected]...
You can do this. I guess, the problem is because you have
not defined a package for the bean.
Try something like:
package foo.bar;
class User{
I am attaching an example.
-manoj
Ludovic Deravet wrote:
Hi,
I'm new to SOAP and Web Services I'd like to know whether the following
is possible
or not.
I've created an EJB with this business interface:
public interface Users implements EJBObject {
public User[] getUsers( ) ...
Where the User object is a bean with some properties:
public User implements Serializable {
public void setName( ... ) ...
public String getName( ) ...
public void setAddress( ... ) ...
public String getAdress( ) ...
I've create the ejb-jar.xml and weblogic-ejb-jar.xml that contain thedefinition
of my EJB and then I try to deploy the web services using the ant task'wsgen'.
I get the following exception:
org.xml.sax.SAXException: Could not find a codec that understood how toconvert
class [LUser; using http://schemas.xmlsoap.org/soap/encoding/
: [ CodecFactory: http://xml.apache.org/xml-soap/literalxml=null,
http://schemas.xmlsoap.org/soap/encoding/=null,> > > =null
Can someone help to resolve this ? Also, I'd like to know if it's
possible that
a web service return a collection of beans as shown above ?
Thanks for your help.
Ludovic. -
Parsing xml returned by web service
I am calling a web service from flash and the web service
returns xml. The xml gets urlencoded when it's put inside the soap
wrapping xml and I'm not sure how to get rid of the soap wrapping
and unencode the returned xml. Thanks.Hi vtxr1300,
I'm not sure if you meant to say "urlencoding" because that
looks more
like this:
?title=This is a test title&description=This is a test
description of item 1
What you're looking at here is pure XML (with namespaces but
you can
ignore them for the most part...we know this is SOAP!).
Since you posted this in the ActionScript 3 forum, I'll
assume you'll
want AS3 code to deal with this. Luckily, AS 3 has made it
incredibly easy
to extract whetever you need out of this.
First, you just need to get this data into a standard XML
object is it's
not already. So..something like this:
//xString is your XML data...SOAP return data, string, or
whatever
var myXML:XML=new XML(xString.toString());
The XML object retains its nesting properties so that, for
example, to
access the first '<desc>' node, you must access
'<module>' before it,
'<modules>' before that, and so on. This is
accomplished using the "child"
method associated with the XML object which uses the node
name as a
parameter. For the '<desc>' node, for example, this
would look like:
myXML.child("Body").child("GetTrainingResponse").child("GetTrainingResult").child("traini ng").child("modules").child("modile").child("desc");
A bit lengthy, but it gets the job done. Typically I would
store s
reference to each of the resulting "child" calls. this has
two benefits and
uses: It's easier to organize and easier to read than one
long instruction,
and it allows you to parse through multiple nodes. Each
"child" call returns
an XMLList object, not necessarily a single node. If there
are multiple
sibling nodes with the same name, for example, calling the
"child" method
will return an XMLList with two object nodes, not just one.
An XMLList can
be used much like an array so you can simply loop through the
results to see
all of the nodes.
The notation for ActionScript 3 has changed a bit for node
attributes.
An attribute name is now referenced via an '@' symbol. For
example, to get
the 'xmlns' attribute of the '<GetTrainingResponse>'
node, you would use:
myXML.child("Body").child("GetTrainingResponse").@xmlns;
Finally, it's worthwhile noting that the XML container
obejct reference
has changed. In ActionScript 2.0, an XML object would point
to the XML
document. The "firstChild" property of the XML object would
point to the
first node ('<soap>' in this instance). In ActionScript
3.0, the XML object
point to the first node so that the first child of the object
in this
instance would be the '<soap:Body>' node.
As mentioned, you can usually ignore namespaces for objects
you're
familiar with. The "soap" namespace, for example, can be
assumed since we
know this is a SOAP response.
Hope this helps.
Regards,
Patrick Bay
BAY NEW MEDIA
"vtxr1300" <[email protected]> wrote in
message
news:[email protected]...
> Here's what the web service is returning. If I create a
local version of
> the
> xml without the soap wrapping and urlencoding I can get
all the data I
> need...
> I just can't figure out how to urldecode it and get rid
of the soap xml.
> Can
> anyone please offer some ideas? Thanks.
>
> <soap:Envelope xmlns:soap="
http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
> <soap:Body>
> <GetTrainingResponse xmlns="
http://www.trainingondemand.com/">
>
<GetTrainingResult><training><modules><module><title>Item
> 1</title><desc>This is a test description of
the
> item.</desc><purchaseurl>
http://www.yahoo.com</purchaseurl><imageurl>http://www.
>
testsite.com/header.gif</imageurl></module><module><title>Item
> 1</title><desc>This is a test description of
the
> item.</desc><purchaseurl>
http://www.yahoo.com</purchaseurl><imageurl>http://www.
>
testsite.com/header.gif</imageurl></module><module><title>Item
> 1</title><desc>This is a test description of
the
> item.</desc><purchaseurl>
http://www.yahoo.com</purchaseurl><imageurl>http://www.
>
testsite.com/header.gif</imageurl></module><module><title>Item
> 1</title><desc>This is a test description of
the
> item.</desc><purchaseurl>
http://www.yahoo.com</purchaseurl><imageurl>http://www.
>
testsite.com/header.gif</imageurl></module></modules><colors><darkcolor>8396b0</
>
darkcolor><btngradientstart>2d6dc4<btngradientstart><btngradientend>17498f<btngr
>
adientend><btn2gradientstart>a5b5ca</btn2gradientstart><btn2gradientend>c4d0e0</
>
btn2gradientend></colors></training></GetTrainingResult>
> </GetTrainingResponse>
> </soap:Body>
> </soap:Envelope>
> -
About XML Parameter for Web Service invoking
I would like to use the XML parameter as the Web Service's input(Attachment is
the XML schema) in WebLogic Server 8 sp1. When I generated the Web Service and
use the WebLogic Server generate test web page to test it, I got Exception. The
WebLogic Server can't constructe the input XML.
The correct XML should look like this:
<ids>
<desc>Description</desc>
<id>1</id>
<id>2</id>
<id>3</id>
</ids>
Is there any one can tell me whether this kind of XML was permitted for Web Service
invoking or not?
[sample.xsd]Hi Andy,
On the test page, before the invoke of the operation, did it say
something like:
<!-- Do not know how to create a sample instance for this part due to
the following exception:java.lang.InstantiationException:
javax.xml.soap.SOAPElement. Pls replace this with the correct XML before
invoking the service. --->
if so, the service itself may be working OK, the deficiency is that the
test page tries its best to determine sample values for the invoke,
however it does not know in this case.
Did you try with a client?
Your XML should be fine.
Regards,
Bruce
Andy wrote:
>
I would like to use the XML parameter as the Web Service's input(Attachment is
the XML schema) in WebLogic Server 8 sp1. When I generated the Web Service and
use the WebLogic Server generate test web page to test it, I got Exception. The
WebLogic Server can't constructe the input XML.
The correct XML should look like this:
<ids>
<desc>Description</desc>
<id>1</id>
<id>2</id>
<id>3</id>
</ids>
Is there any one can tell me whether this kind of XML was permitted for Web Service
invoking or not?
Name: sample.xsd
sample.xsd Type: ACT Project (text/xml)
Encoding: base64 -
Bad XML from external web service and would like to change the content
I am getting a bad XML(not valid) from external web service and I would like to change the content of the body in OSB proxy service to make it valid.
For example
<g:Information xsi:schemaLocation="http:// bad schema" xmlns:g="http://abc.com/t.xsd">
<test>Test Data</test>
</g:Information>
should become
<g:Information xmlns:g="http://abc.com/t.xsd">
<test>Test Data</test>
</g:Information>
Do you how can I do this?I don't think it would be the best solution but you may try -
1. Conver the incoming XML to string using fn-bea:serialize() function
2. Replace the not-required content with a blank
3. Covert the string back to XML using fn-bea:inlinedXML
If you find any other solution, please let us know.
Regards,
Anuj -
Unallowed RFC-XML Tag (SOAP_EINVALDOC) - Web Service using ABAP Proxy
Hi there
I am trying to consume a Web Service using ABAP Proxies. I have done the following in the system:
I configured the HTTP and HTTPS Proxy settings.
I created a package with package interfaces SAI_TOOLS and SAPPINT included under the Use Access tab.
I created the proxy classes by using the WSDL provided by the system I'm trying to interface with.
I created my HTTP destination RFC via SM59.
I configured a logical port for the proxy.
I developed the ABAP code for calling the proxy.
In the code the exception CX_AI_SYSTEM_FAULT gets raised with error message <b>"Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b> when I call the method for passing data to the destination system in the proxy class.
I had a look at SM21 and the following message was written in the log:
<b>"SOAP Runtime: SOAP Runtime exception: 111 occurred in method XP_READ_TAG of class CL_SOAP_XP at position 1
SOAP Runtime: Exception message: Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b>. I also looked at SAP Note 919886 which states that it can be dumps in the system, missing configuration or the path prefix of the RFC destination that is incorrect. I cannot find any ST22 entries. The trace file looks as follows:
SAP System ID: DGH
Client: 009
User: COLESKG
System time: 072910
System date: 20070531
SAP Release: 700
Host: hd307c
Operating system: AIX
DB System: ORACLE
Program: ZUK_IPA00003
Processing State: 0
Location: Client
Transport Binding: http://schemas.xmlsoap.org/soap/http
SOAP Application: urn:sap-com:soap:runtime:application:client
SOAP Runtime Protocol: http://www.sap.com/webas/630/soap
/runtime/protocol
SOAP Protocols: <initial>
Request Message: <initial>
Response Message: <initial>
Fault: <initial>
Registry: <initial>
SOAP Roles: <initial>
Trace Level: 3
Logging Level: 2
Monitoring Level: 0
Security Profile: <initial>
WS Security Protocol: <initial>
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to create client application for Proxyclass:
ZES_CO_PROCESS_EMPLOYEE_BATCH LP name: DEFAULT
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application created
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to initialize client application
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Try to initialize application
urn:sap-com:soap:runtime:application:client
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new runtime CL_SOAP_RUNTIME_CLIENT
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Try to register application
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Application registered
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Read type of transport binding from
configuration
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new transport binding type
http://schemas.xmlsoap.org/soap/http
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() Try to initialize
http://schemas.xmlsoap.org/soap/http
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() http://schemas.xmlsoap
.org/soap/http initialized
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Try to create request message
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Request message created
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Try to create response message
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Response message
created
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Try to initialize
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Check transport binding
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Create runtime protocol
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Runtime-intrinsic
Protocol as SENDER with Priority 5
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create trace header/part
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Trace header/part created
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create logging header/part
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Logging header/part created
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT()
Initialized
INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
Try to create instance for http://www.sap.com/webas/630/soap
/runtime/session/protocol::http://www.sap.com/webas/630/soap
/runtime/session/protocol/srt640_impl
INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
Instance of CL_SOAP_SESSION_PROTOCOL created for http://www.sap.com/webas/630/soap/runtime/session/protocol::http://www.sap.com/webas/630/soap/runtime/session/protocol/srt640_impl
INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Session Protocol
as SENDER with Priority 5
INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Try to configure features
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() Try to
create ICF Client for DESTINATION = ALSB
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() ICF
Client created by DESTINATION
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_DESTINATION_URL_PATH() Set
DESTINATION PATH = /SapHRSmartIntegrationWeb/processes/ProcessEmployeeBatch.jpd
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Features configured
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Application urn:sap-com:soap
:runtime:application:client initialized
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application initialized
Trace file opened at 20070531 073030 GMT SAP-REL 700,0,95
Error in module XMLParserGetNextElement:773
Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfcpars.c#2 $
Unallowed RFC-XML Tag
Error in module XMLConverterReadTag:3061
Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfccnvrt.c#5 $
Unallowed RFC-XML Tag(24)
Error in module ab_soap:4392
Id @(#) $Id: //bas/700_REL/src/krn/rfc/abxrfccal.c#2 $
failed with return code 1
It then must be something in the config. Has anyone got any idea why this message is encountered?
Kind Regards
Gustav Coleske
Message was edited by:
Gustav ColeskeHi,
I have the same problem as described.
Can you give me a little more information about the error you have solved in the proxy.
Thanks for help
John -
Xml encoding on web service request in flex 3
The encoding of xml on the <mx:request> tag has changed
as of flex 3 build 185179. In prior builds I could bind a variable
that contained an XML fragment and it was left untouched. As of
build 185179 the "<" and">" characters are encoded as
< and > respectively. This breaks web services that
expect XML fragements as parameters, i.e. Microsoft SharePoint Web
Services. See attached code that used to work. Variables v and q
are determined at runtime. They are XML fragments set in
actionscript prior to calling the web service.How are you calling the WebService from Flex??
I was seeing a very similar error when I tried to use the Generated Web Service classes to call my web service. But it didn't happen with the MXML approach.
Sorry I don't have an answer as to what causes this, I have been searching the web, posted here....
I'll follow up if I find anything.
Maybe you are looking for
-
Can I use Remote Desktop to run Windows software from my Mac
Here's what I want to do: 1) Set up a small office LAN with an Apple Xserve as the file server; clients are mostly iMacs but a few PCs. 2) There are one or two software apps I need that exist only in the Windows world (such as a good document compari
-
How to put a SQL Agent Job wait in the trigger while the job is running.
Hello! I am not a geek in writing t-sql code so I am seeking forum help in completion of my task. I have a trigger which fires upon a action and with in that code, I am starting a job via t-sql like EXEC msdb.dbo.sp_start_job N'JobName'; Now, I want
-
Hi all , i have a PO when i click print i get a popup window asking for printer name printer settings or properties n all . and when we press ok button on this screen PO goes to get printed in the printer . i want to know how this function module com
-
Hello, This is the first time google has not been able to answer my question. I live in Canada. I bought my phone in Quebec, a french speaking part of Canada. Even when I am not in Quebec the e-mail I receive from Apple is in french. How do you chang
-
Hi All I am using WDA 2 as Interface in WDA 1. From WDA1 I like to call one view of WDA2. WDA 2 has total 4 views. Pleae help me on this...thank you all... Regards Rama