-
1. Re: Problem with User defined object in Jboss web service
zohar_sap Aug 24, 2006 5:30 AM (in response to zohar_sap)Anyone can help ? I really need this one.
Thanks. -
2. Re: Problem with User defined object in Jboss web service
stevenh Aug 24, 2006 6:15 PM (in response to zohar_sap)I remember reading somewhere that .net likes methods that start with capitals... it might be a convention or otherwise. Try setting the operation name on you webmethod annotation to include operationName="Test1".
No claims that this will work but give it a try.
Steve. -
3. Re: Problem with User defined object in Jboss web service
zohar_sap Aug 27, 2006 11:50 AM (in response to zohar_sap)Hi Steve,
I tried your solution but it did not help.
Thanks anyway.
Zohar -
4. Re: Problem with User defined object in Jboss web service
stevenh Aug 27, 2006 6:28 PM (in response to zohar_sap)Hi Zohar,
Did you have copies of the generated wsdl and the soap message being sent to the server.
Steve. -
5. Re: Problem with User defined object in Jboss web service
zohar_sap Aug 28, 2006 9:29 AM (in response to zohar_sap)Sorry, But I still had a problem posting the WSDL. This time it should work:
1. This is the WSDL that is generated by the .Net client:<?xml version="1.0" encoding="utf-8"?> <definitions xmlns:tns="http://org/jaws" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TestFacadeService" targetNamespace="http://org/jaws" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <xsd:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://org/jaws"> <xsd:complexType name="MyClass"> <xsd:sequence> <xsd:element name="a" nillable="true" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:schema> </types> <message name="TestFacade_Test1"> <part name="String_1" type="xsd:string" /> <part name="MyClass_1" type="tns:MyClass" /> </message> <message name="TestFacade_Test1Response"> <part name="result" type="xsd:string" /> </message> <portType name="TestFacade"> <operation name="Test1" parameterOrder="String_1 MyClass_1"> <input message="tns:TestFacade_Test1" /> <output message="tns:TestFacade_Test1Response" /> </operation> </portType> <binding name="TestFacadeBinding" type="tns:TestFacade"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" /> <operation name="Test1"> <soap:operation soapAction="" /> <input> <soap:body use="literal" namespace="http://org/jaws" /> </input> <output> <soap:body use="literal" namespace="http://org/jaws" /> </output> </operation> </binding> <service name="TestFacadeService"> <port name="TestFacadePort" binding="tns:TestFacadeBinding"> <soap:address location="http://TLVD60154031A:8080/TestFacade/TestFacade" /> </port> </service> </definitions>
2. This is the WSDL that I get when I acces
http://localhost:8080/TestFacade/TestFacade?wsdl:<definitions name='TestFacadeService' targetNamespace='http://org/jaws' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://org/jaws' xmlns:xsd='http://www.w3.org/2001/XMLSchema'> <types> <schema elementFormDefault='qualified' targetNamespace='http://org/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://org/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'> <complexType name='MyClass'> <sequence> <element name='a' nillable='true' type='string'/> </sequence> </complexType> </schema> </types> <message name='TestFacade_Test1'> <part name='String_1' type='xsd:string'/> <part name='MyClass_1' type='tns:MyClass'/> </message> <message name='TestFacade_Test1Response'> <part name='result' type='xsd:string'/> </message> <portType name='TestFacade'> <operation name='Test1' parameterOrder='String_1 MyClass_1'> <input message='tns:TestFacade_Test1'/> <output message='tns:TestFacade_Test1Response'/> </operation> </portType> <binding name='TestFacadeBinding' type='tns:TestFacade'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='Test1'> <soap:operation soapAction=''/> <input> <soap:body namespace='http://org/jaws' use='literal'/> </input> <output> <soap:body namespace='http://org/jaws' use='literal'/> </output> </operation> </binding> <service name='TestFacadeService'> <port binding='tns:TestFacadeBinding' name='TestFacadePort'> <soap:address location='http://TLVD60154031A:8080/TestFacade/TestFacade'/> </port> </service> </definitions>
3. I used a sniffer and this is what I got when I called test1()
from my .Net client:POST /TestFacade/TestFacade HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.42) Content-Type: text/xml; charset=utf-8 SOAPAction: "" Host: tlvd60154031a:8080 Content-Length: 316 Expect: 100-continue Connection: Keep-Alive HTTP/1.1 100 Continue <?xml version="1.0" encoding="utf-8"?><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><Test1 xmlns="http://org/jaws"><String_1 xmlns="">1</String_1></Test1></soap:Body></soap:Envelope> HTTP/1.1 500 Internal Server Error Server: Apache-Coyote/1.1 X-Powered-By: Servlet 2.4; JBoss-4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000)/Tomcat-5.5 Set-Cookie: JSESSIONID=00C7A2C43F19677B78910277825F9BDD; Path=/ Content-Type: text/xml;charset=UTF-8 Transfer-Encoding: chunked Date: Mon, 28 Aug 2006 12:27:41 GMT Connection: close 51 <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'><env:Header/> 2a <env:Body><env:Fault>env:Client c 31 Cannot find child element: MyClass_1 e c </env:Fault> b </env:Body> f </env:Envelope> 0
Regards,
Zohar -
6. Re: Problem with User defined object in Jboss web service
stevenh Aug 28, 2006 6:33 PM (in response to zohar_sap)Hi Zohar,
You have posted the reply from the server, but do you have the original soap message from teh client to the server.
I have a feeling that the server is not understanding the request that your client is providing, ie potentially the wrong name spaces etc. I had a similar problem with a php client talking to my server, as it was puting the child element (in your case my_class1) in the wrong namespace.
If stand up an instance of axis's tcpmon, it will proxy all of your soap messages for you and let you examine the requests and responses, it will also let you manipulate the messages and resend them.
Steve. -
7. Re: Problem with User defined object in Jboss web service
zohar_sap Aug 29, 2006 3:40 AM (in response to zohar_sap)Hi Steve,
I used a simple filter for getting the client request. The request:<?xml version="1.0" encoding="utf-8"?><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><Test1 xmlns="http://org/jaws"><String_1 xmlns="">This is the input string</String_1><MyClass_1 xmlns=""><a xmlns="http://org/jaws">This is the a member value of the input MyClass</a></MyClass_1></Test1></soap:Body></soap:Envelope>
Zohar -
8. Re: Problem with User defined object in Jboss web service
stevenh Aug 29, 2006 7:14 PM (in response to zohar_sap)Zohar,
I set up an instance of the ejb you posted, a few minor tweaks with target namespace and operation name so the generated wsdl would match the one you posted, and sent the request you posted to my web service using xmlspy and it worked fine.
I am running jbossws 1.0.2GA, but i wouldnt think that would make any difference.
Steve. -
9. Re: Problem with User defined object in Jboss web service
thomas.diesler Sep 4, 2006 9:41 AM (in response to zohar_sap)Whatever client you use, it must share the same abstract contract (i.e. the server generated WSDL).
It does not make sense to talk about a server side WSDL *and* a client side WSDL.
Having said that, I know that .NET has issues or does not support rpc/literal. Try document/literal.