Web Service Array Serialization/DeSerialization in EP 6.0 SP4 !!
Environment :
Portal : 6.0.4.0.0.Enterprise_Portal_Support_Package_4
JDK : 1.3.1
NW Studio : 2.0.4
I have published a portal service as a web service through the NW studio and created a standalone client. I have written a test client which uses the client jar file generated from NW studio stanalone proxy wizard. I also did a HTTP trace and looked at the request being sent to the portal. I am getting the following exception on the server side ...
javax.xml.soap.SOAPException: Unable to serialize SOAPPart from source
at com.sap.engine.services.webservices.jaxm.soap.SOAPPartImpl.setContent(SOAPPartImpl.java:186)
at com.sap.engine.services.webservices.jaxm.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:80)
at com.sap.engine.services.webservices.jaxm.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:36)
at com.sapportals.portal.prt.service.soap.SOAPConnection.processSOAPPost(SOAPConnection.java:237)
at com.sapportals.portal.prt.service.soap.SOAPConnection.handleRequest(SOAPConnection.java:185)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:153)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:377)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:257)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:322)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:300)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:699)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:224)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:147)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
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:94)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:140)
Caused by: com.sap.engine.lib.xml.parser.NestedSAXParserException: com.sap.engine.lib.xml.parser.ParserException: The empty string is not acceptable for a value of an xmlns:* attribute.(:main:, row:1, col:3321)(:main:, row=1, col=3321) -> com.sap.engine.lib.xml.parser.ParserException: The empty string is not acceptable for a value of an xmlns:* attribute.(:main:, row:1, col:3321)
at com.sap.engine.lib.xml.parser.DOMParser.parse(DOMParser.java:136)
at com.sap.engine.lib.xml.parser.DOMParser.parse(DOMParser.java:150)
at com.sap.engine.services.webservices.jaxm.soap.SOAPPartImpl.parseDocument(SOAPPartImpl.java:49)
at com.sap.engine.services.webservices.jaxm.soap.SOAPPartImpl.setContent(SOAPPartImpl.java:174)
For some reason, the client is sending blank as the xml name space for array attributes in the objects when serializing. Also, I have used the wsdl as it is and have not modified it.
The client is sending the following for array attributes in the soap request [:main:, row:1, col:3321 ] ...
xmlns:tns='' xmlns:ns2='http://schemas.xmlsoap.org/soap/encoding/'
Are there any issues if complex object includes array of complex objects ??
I appreciate your help !!
Hi
Elvez,
Thanks for answering.I have created the web service client jar file through the NW studio standalone proxy wizrd which creates a jar file so that external java application can invoke the web service outside of the portal. The web service is called dynamically by the following code ...
TestService service = new TestServiceImpl();
TestBindingStub port = (TestBindingStub)service.getTestService();
Pip3A2PriceAndAvailabilityRequest request = new Pip3A2PriceAndAvailabilityRequest();
populateRequest( request );
Pip3A2PriceAndAvailabilityResponse response = port.getInventory( request );
If I have issued Netweaver Studio to both publish the service as well as to consume the web service, I think then the issue is on the client side wizard which creates the proxy classes for the web service client in the jar file. The wsdl specifies the xml namespace for the Arrays but the generated client code probably is not setting the name space correctly.
Thanks
Bhabesh Patel
Similar Messages
-
Web Service Array deserialization
Hello everyone,
A web service has been developped with gSoap. I import the
WSDL and the calls and arguments are exactly as expected.
Nonetheless I have problem getting arrays from this server. For
info I use the WS API.
Here is the response that I get (using
trace(myWScall.response) ) :
<?xml version="1.0"
encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="
http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:ct="urn:ControlTask"><SOAP-ENV:Body
SOAP-ENV:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"><dummy><resp><ct:nombre>10</ct:nombre><ct:chain e>On
multiplie 5 par 2 :
10</ct:chaine><ct:vecteur>0</ct:vecteur><ct:vecteur>2</ct:vecteur><ct:vecteur>4</ct:vecte ur><ct:vecteur>6</ct:vecteur><ct:vecteur>8</ct:vecteur></resp></dummy></SOAP-ENV:Body></SO AP-ENV:Envelope>
As you can see, my response struct is made of : an integer, a
string, a vector of integer.
Now in the onResult callback I do this :
testCall.onResult = function (pResult) {
trace(typeof(pResult.vecteur)+" "+pResult.vecteur);
trace(typeof(pResult.nombre)+" "+pResult.nombre);
trace(typeof(pResult.chaine)+" "+pResult.chaine);
Which outputs :
string 8
number 10
string On multiplie 5 par 2 : 10
The type of the vector of integers is always "string" and the
value is always the last value of the array, whereas in the schema
of the WS (in the Service Web pannel) I got :
nombre : Integer (int)
chaine : String (string)
vecteur : Array
[n] : Integer (int)
I can't see what I am doing wrong, so maybe this is a bug.
I also create a WS with an array as input parameter to see
how it was encoded by Flash. The request looks like this :
<SOAP-ENV:Envelope xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body
xmlns:ns1="urn:ControlTask"><ns1:test1
SOAP-ENV:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"><input
soapenc:arrayType="xsd:int" xmlns:soapenc="
http://schemas.xmlsoap.org/soap/encoding/"><vecteur
xsi:type="xsd:int">0</vecteur><vecteur
xsi:type="xsd:int">1</vecteur><vecteur
xsi:type="xsd:int">2</vecteur><vecteur
xsi:type="xsd:int">3</vecteur></input></ns1:test1></SOAP-ENV:Body></SOAP-ENV:Envelope>
So Flash and my web server are serializing arrays the exact
same way :
<varname>value0</varname><varname>1</varname>...
Any help, info, idea, suggestion would be greatly
appreciated.
FabriceHi
Elvez,
Thanks for answering.I have created the web service client jar file through the NW studio standalone proxy wizrd which creates a jar file so that external java application can invoke the web service outside of the portal. The web service is called dynamically by the following code ...
TestService service = new TestServiceImpl();
TestBindingStub port = (TestBindingStub)service.getTestService();
Pip3A2PriceAndAvailabilityRequest request = new Pip3A2PriceAndAvailabilityRequest();
populateRequest( request );
Pip3A2PriceAndAvailabilityResponse response = port.getInventory( request );
If I have issued Netweaver Studio to both publish the service as well as to consume the web service, I think then the issue is on the client side wizard which creates the proxy classes for the web service client in the jar file. The wsdl specifies the xml namespace for the Arrays but the generated client code probably is not setting the name space correctly.
Thanks
Bhabesh Patel -
Web Service: XMLUnmarshalException: XML Deserialization Error
Hi,
I am trying to use a complex web structure in web service.
I am simply trying to display some data from that web service in my view.
I am getting the foll error:
<b>
Service call exception; nested exception is:
com.sap.engine.services.webservices.jaxrpc.exceptions.XmlUnmarshalException: XML Deserialization Error. XML is not valid. Element [http://www.siebel.com/xml/Account Interface]<Account> is required in <SiebelMessage> but can not be found.[Ljava.lang.StackTraceElement;@2fe4e7
</b>
I have gone thru most of the posts but they all have XMLMarshalException and not XMLUnmarshalException.
Any inputs please?
Regards,
DevHi Bala,
I tried your suggestion but that did not work!
I am not trying to test that web service via WSNavigator.
Problem is my service does not come there once i deploy it.
I am a newbie to WebServices so please correct me where am I wrong in these steps:
1. I create a Deployable Proxy Project
2. Then, i create a new Client Proxy Definition
3. I enter pkg name, Proxy name, choose Local System. Then i give the WSDL location and finally press Finish.
(It has created several files including ClientAPI.jar)
4. Lastly, i chose Build EAR and deployed it.
But i cannot see my web service in that list!
Can you please help me in checking the request-response cycle for this web service.
Regards,
Dev -
Asynch web services having serialization problem wint 7.0SP1
Hi,
I've tried creating a simple async web service that sends a Java bean to a web
service that's implemented
as an MDB. i.e. The java bean is of type malcolm.AimosMatchedRequest and is therefore
delivered as
an ObjectMessage.
I keep getting a deserialising error listed below in the Weblogic log.
Now if I do a serialver on my Javabean class I get the value 6661344068394585445
in agreement with the log for the stream classdesc. I therefore presume that
the
local class, is the server view which I guess is the SOAP unmarshaled/generated
class that
WebLogic is expecting???
How do I deal with this problem? Note that explitiely forcing the serialuid in
my Javabean class
does not help, which to me confirms that WebLogic is geenrating some SOAP equiv
class.
regards
--malcolm
weblogic.jms.common.JMSException: Error deserializing object
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.jav
a:140)
at malcolm.AimosMatchedBean.onMessage(AimosMatchedBean.java:68)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.
java:290)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
----------- Linked Exception -----------
java.io.InvalidClassException: malcolm.AimosMatchedRequest; Local class not comp
atible: stream classdesc serialVersionUID=6661344068394585445 local class serial
VersionUID=7727103220180333880
at java.io.ObjectStreamClass.validateLocalClass(ObjectStreamClass.java:5
18)
at java.io.ObjectStreamClass.setClass(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java
:931)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:361)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1181)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.jav
a:128)
at malcolm.AimosMatchedBean.onMessage(AimosMatchedBean.java:68)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.
java:290)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
weblogic.jms.common.JMSException: Error deserializing object
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.jav
a:140)
at malcolm.AimosMatchedBean.onMessage(AimosMatchedBean.java:68)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.
java:290)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
----------- Linked Exception -----------
java.io.InvalidClassException: malcolm.AimosMatchedRequest; Local class not comp
atible: stream classdesc serialVersionUID=6661344068394585445 local class serial
VersionUID=7727103220180333880
at java.io.ObjectStreamClass.validateLocalClass(ObjectStreamClass.java:5
18)
at java.io.ObjectStreamClass.setClass(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java
:931)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:361)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1181)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.jav
a:128)
at malcolm.AimosMatchedBean.onMessage(AimosMatchedBean.java:68)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.
java:290)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)Bruce Stephens <[email protected]> wrote:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Hi Malcolm,
<p>There's been a significant amount of work done on async services in
conjunction with reliable ws messaging that will be available in the
next
release.
<p>Can you/your customer be part of the upcoming beta?Certainly keen to participate. I presume from what you've said that SP1 is still
problematic for async. I've found that SP1 seems pretty good for synch web services
(addressed issues I had with 7.0).
regards
--malcolm
<p>Thanks,
<br>Bruce
<p>Malcolm Robbins wrote:
<blockquote TYPE=CITE>Wow,
<br> based on no replies it appears that no one is actually using
asynch web services.
<p>It looks like I better recommend to my (large bea customer) that WebLogic
async
<br>web services are not ready for prime time...
<p>regards
<p>--malcolm</blockquote>
</html> -
Web Service request response serialization
I think there may be a bug in the way web service
serialization works in the latest release of flex 2.0. In beta3 web
service element of type array(elements whose maxOccurs="unbounded")
were deserialized by flex in to an object of type Array. However in
the new release web service arrays are now deserialized in to an
object of type ArrayCollecton. The strange behavior comes when Flex
tries to serialize an ArrayCollection. An error is thrown.
In other words
it appears that flex deserializes arrays (elements whose
maxOccurs="unbounded") into ArrayCollection but can not serialize
an ArrayCollection in to an array. It can however handle
deserializing an Array.
Is this behavior intentional?Okay so I was wrong. If you set the makeObjectsBindable on
the WebService to false then collections are deserialized into
Arrays and not ArrayCollections. All is well now. -
Web Services (in JDeveloper)
Hi
I have been trying to expose a method returning XMLDocument type as a web service in JDeveloper. This does not work. Rather it says that Element type should be returned and not XMLDocument type. However, after changing the return type, test class calling this method works fine but I get the following error when I run the web service:
No Serializer found to serialize a 'org.w3c.dom.Element' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.Duplicate thread: Web services in JDeveloper 10.1.3
-
Hello Everybody,
I am new in MDM. and like to know if is possible do change data from xi over web service in MDM.
I am using MDM SP4 , mySAP2005 and like to import data(Matmas) from XI to MDM. but MDM and MySAP2005 are not connected, could you give me input !
which possibility gives to import master data from mySAP2005 over XI to MDM in this case ?
thank you in advance
DominiqueHi Dominique,
have a look at the configuration and IT scenario guide in our <a href="http://service.sap.com/installmdm">MDM Documentation Center</a>. both documents give you a hint how.to setup MDM and ERP together with XI. In fact everything you'll need delivered as a standard.
Kind regards
Michael -
SOS!Serialization/Deserialization in Web Services!!!!!
Hello, I have done some serialization/deserialization jobs before which is just about JavaBeans, but when it comes to Object Arrays, errors occured when the problem become more complex.Suppose I have an Object Array called params, nd params[0] is a JavaBean instance,params[1] is a String, while params[2] is a Float. I have tried many times, but the serialization works still failed.So anyone having met and solved such problem please share your code with me(my email is [email protected]), thanks very very much!
Hi
Elvez,
Thanks for answering.I have created the web service client jar file through the NW studio standalone proxy wizrd which creates a jar file so that external java application can invoke the web service outside of the portal. The web service is called dynamically by the following code ...
TestService service = new TestServiceImpl();
TestBindingStub port = (TestBindingStub)service.getTestService();
Pip3A2PriceAndAvailabilityRequest request = new Pip3A2PriceAndAvailabilityRequest();
populateRequest( request );
Pip3A2PriceAndAvailabilityResponse response = port.getInventory( request );
If I have issued Netweaver Studio to both publish the service as well as to consume the web service, I think then the issue is on the client side wizard which creates the proxy classes for the web service client in the jar file. The wsdl specifies the xml namespace for the Arrays but the generated client code probably is not setting the name space correctly.
Thanks
Bhabesh Patel -
Deserialize an array of objects from a web service
Hi, I'm calling a webservice method which returns an array of
objects (let's
say classes called MyClass).
I now want to define a class in actionscript called MyClass
which matches
the properties of the class defined in the web service
(written in .NET),
call the webservice method, and then deserialize the result
in actionscript
into an array of type MyClass.
The code I have so far is:
import mx.services.WebService;
import mx.services.Log;
var mylog:Log = new Log(Log.DEBUG);
myLog.onLog = function(txt) {
trace(txt);
var ws:WebService = new WebService(wsc.WSDLURL);
ws.onLoad = function(wsdl) {
MyPendingCallObject =
ws.CallTheWebServiceMethodWhichReturnsAnArrayOfMyClasses();
MyPendingCallObject.onResult = function(result)
trace(result);
// HOW CAN I DESERIALIZE the result parameter into an Array
of
MyClass ???
MyPendingCallObject.onFault = function(fault)
trace('FAULT! ' + fault.faultCode + "," +
fault.faultstring);
// If the WSDL fails to load the onFault event is fired.
ws.onFault = function(fault) {
trace(fault.faultstring);
TIAHi,
I posted a similar problem some time ago :
http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=15&catid=294&threadid =1221565&enterthread=y
Do you find any solution to your problem ?
Fabrice -
Custom serializer/deserializer in Weblogic 9 web service
We are able to select XML from the database which is properly formatted to the schema definition of the method return type. Therefore, the serialization/deserialization of XML to JAVA and then back to XML does not make sense.
Is there a way to use a custom serializer/deserializer in a Weblogic 9.1 web service like we could do in Weblogic 8.1? I have read where the 8.1 web services are still supported but we would like to migrate everything over now. In 8.1 the serializer/deserializer was defined in the deployment descriptor. However, I have seen nothing of this kind in Weblogic 9 documentation and all of those classes are now marked Deprecated.
Any help is greatly appreciated. Thanks!Why dont you try removing the ejb-jar.xml and using annotations. You can use @JndiName and @FileGeneration annotations, this should work ...
-Jesus -
Web service non-built-in type serializer & deserializer
I created a web service in WLS7.0 that returns a custom VO object.
When I tried to run a client against it, I got the following error
=================================================
Unable to find a javaType for the xmlType:['java:xxx.yyy.zzz']:UserVO.
Make sure that you have registered this xml type in the type
mapping:TYPEMAPPING SIZE=0
I found the <type-mapping> tag regarding this VO class in the
web-services.xml. Also found was its xml schema definition in the
WSDL.
What else am I missing?
Thanks for the help.
TS
I created a web service in WLS7.0 that returns a custom VO object.
When I tried to run a client against it, I got the following error
=================================================
Unable to find a javaType for the xmlType:['java:xxx.yyy.zzz']:UserVO.
Make sure that you have registered this xml type in the type
mapping:TYPEMAPPING SIZE=0
I found the <type-mapping> tag regarding this VO class in the
web-services.xml. Also found was its xml schema definition in the
WSDL.
What else am I missing?
Thanks for the help.
TS
-
Deserialization Error while connecting to web service
I am getting a deserialization error while connecting to a web service.
Deserializing parameter 'ScheduleReceiveService': could not find deserializer for type {http://www.w3.org/2001/XMLSchema}anyType...
There are two methods ex
UserDefinedClass1 methodA(java.lang.Object ) and
UserDefinedClass2 methodB(UserDefinedClass3)
And when i generate java files using WSDL2Java using apache axis the UserDefinedClass is generated as follows.
public class UserDefinedClassA implements java.io.Serializable {
private java.lang.Object _return;
// There are other methods for setting the attributes,hashCode,equals etc
Now when i try to invoke the method from the client i get this as an error ?
Deserializing parameter 'UserDefinedClass': could not find deserializer for type {http://www.w3.org/2001/XMLSchema}anyType
Appreciate any suggestion.Hi Manohara,
To download the file from SharePoint, I recommend to use the credential for a user who can access the file in SharePoint in the client object model.
NetworkCredential credentials = new NetworkCredential(“username”, “pwd”, “domain”);
ClientContext context = new ClientContext(“http://thesitecollection”);
context.Credentials = credentials;
Best regards.
Thanks
Victoria Xia
TechNet Community Support -
Web Service From Java class, serialization problem
Hi,
I want to create Web Service from Java class, I made java project, generated web service from it, create web service archive project and deployed it to WAS 6.40.
My class have 2 methods,
public int add(int a, int b);
public MyResponse doSomthing(MyRequest req);
I can succesfully call add method from Web Service Navigator, it works fine but when I call doSomthing methods I get the following error:
<b>
Deserializing fails. Nested message: XML Deserialization Error. Result class [com.mycomp.sap_tech.ws.MyRequest] does not have property [Amount] of type [java.lang.String]. It is required to load XML..
</b>
Any ideas how to resolve it?
P.S. MyRequest class is exposed throw VI, has default constractor and public getters and setters for all properties. It implements Serializable as well. Any guesses?
Thanks in advance,
Victor.Hi Bhavik, thanks for response.
as I already mentioned it implements Serializable, so it is not the problem.
Thanks Avi but it didn't helps iether
Victor -
Web Service String Array parameter
I would like to pass a string array to a web service from
mxml. I have passe strings successfully as individual parameters,
but I am looking for some sample code (MXML) to define the string
array paramter. When I try to specifiy <mx:Array> withing
<mx:request>, I get a compile time error.
Can anyone show how its done?
Thanks in advanceNo Deserializer found to deserialize
Re: No Deserializer found -
Serialization error in SAP Web Service.
Hi all,
I have exposed a custom RFC as a Web Service. This is a simple web service that returns Customer Data (from kna1) based on the Customer ID which we provide as input.
In the RFC, I have declared an internal table (G_RET) in the tables section of the RFC.
Now, while testing the web service, I can see a check box with NULL option beside the G_RET. If i check the NULL option for G_RET, I get an error.
XML Serialization Error. Array Property [Item] in class [none] must not have NULL elements. This is restricted by schema description.
This is a high priority task. Please reply to me with any solution that you may have.
Regards,
Preksha.Your problem has nothing to do with SAP web service. When you expose a RFC function as a web service, you are defining a service contract using WSDL technologies and XML message format enforced by the schema definition associated with the data source.
When a system consume a web service it is upto that system to provide a client framework so that it can provide an implementation enforces by the WSDL contract. Contract terms in WSDL is only applicable to data types, message types, access style and ecoding.
It is upto the client framework to provide a mechanism to send and receive the data as per the contract.
In your case, you are using a Microsoft client, so MS implementation of web service technology play a big role here.
C# XML serialization class from the MS client program you are using to call the program, read the WSDL contract and try to understand the definition and terms and conditions of the messages, types, binding.
In your WSDL you may have constraints applied at each field level of the schemas associated with the input and output messages of the web service methods.
Unfortunatly the way C# XML serialization class understand the terms and condition is confusing and it create a rum time error.
Having said this all stories now let us get into practical way.
1. Test ur web service using a non MS client
2. Make sure it is working, this isolate your issues to the way client understanding the WSDL contracts.
3. Then work with some MS guys in your shop to address this issue.
From your post I hope you are a candidate having experience in working with SAP customization project. However when ever you deal with open technologies such as JAVA, Web Services, it is highly recomended to think outside the BUNN.
AS SAP move towards more open technologies such as JAVA, WSDL, SOAP, WS, XML, XSD it is very important to elaborate your knowledge beyond the scope of a customization project.
Thanks
Maybe you are looking for
-
Hi Experts, i am going to implement a ASA5505 in one of my offices. I would like to use web filtering feature on it. Will it cause any performance degradation in ASA? will it utilized more memory? Thanks Vipin
-
Update several iPod's with same IOS download
Ok this is a simple question. All i want to know is that if i click download only (or download and update) when updating to the current IOS (5) is it possible to update other ipods without downloading the IOS again. For example i plug my ipod in and
-
I just setup my site in DW CS4 and upload local files to the remote server. Why can I type in the homepage - www.ducksinaroworganizers.com - but all other files are "page not found". I see them in DW in the remote folder side. Please help!
-
How do we produse a movie where several films are playing and at once on the screen?
We thinking about buying Adobe Premiere Pro for production of movies shown as LED banners on sport arenas. We need to make a customised projects and sequenses where 20 small movies are shown on the screen at the same time. Full screen has a solution
-
Prolong backlit time display in iPod Classic
Gentlefolk; The display on my iPod Classic defaults to current time and battery status. Perfect. But, to see the time, when I touch a control, the backlight comes on, then the song title displays, when all I really want to do is see the time. Is ther