Problems while deployment
baskar_bharadwaj Jan 7, 2005 7:42 AMDr. Jung. Thank you again for your reply.
There were two issues I was tripping over. The first (see the odd posting starting with "Eye of Newt" in this forum), had to do with a class collision between the commons-logging.jar file I was loading in my WAR and the commons-loading.jar already in the jboss-net sub-directory. That was easy to solve (once I figured out what was going on).
This other one had an equally simple solution, though the results are slightly imperfect. If I include a copy of the custom class (actually the full jar from the project) in the wsr file, the class deploys without issue.
-- Actually, something you said in your last post made me want to try it without the jar. That seems to work now as well --
The only issue remaining may not have a resolution. The class gets recognized during the WSDL generation as cert:User, but SoapEnvelopes returned from calls to the service list the class as ns1:User, and java sees the class as org.apache.crimson.tree.ElementNode2, which that's probably a default. The upshot is that Java Clients have to treat the object as a Node rather than as an Object. Since our consumer is a .NET client, that may not be an issue.
If you have any thoughts on this, please let me know:
(FYI: Jboss 3.2.2. Please let me know if you would still like to see a sample deployment unit.)
SOAP:
<?xml version="1.0" encoding="UTF-8" ?> - <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <soapenv:Body> - <getUserResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <UserGreeting href="#id0" /> </getUserResponse> - <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:User" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://cvs.east.frontiercorp.com/cert"> <name xsi:type="xsd:string">My Name</name> </multiRef> </soapenv:Body> </soapenv:Envelope>
WSDL:
<?xml version="1.0" encoding="UTF-8" ?> - <wsdl:definitions targetNamespace="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" xmlns:intf="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="http://cvs.east.frontiercorp.com/cert" xmlns:tns2="http://net.jboss.org/jmx" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <wsdl:types> - <schema targetNamespace="http://cvs.east.frontiercorp.com/cert" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> - <complexType name="User"> - <sequence> <element name="name" nillable="true" type="xsd:string" /> </sequence> </complexType> </schema> - <schema targetNamespace="http://net.jboss.org/jmx" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> - <simpleType name="ObjectNameType"> - <simpleContent> <extension base="xsd:string" /> </simpleContent> </simpleType> </schema> - <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> - <complexType name="mapItem"> - <sequence> <element name="key" nillable="true" type="xsd:string" /> <element name="value" nillable="true" type="xsd:string" /> </sequence> </complexType> - <complexType name="Map"> - <sequence> <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" /> </sequence> </complexType> </schema> - <schema targetNamespace="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> - <complexType name="ArrayOf_apachesoap_Map"> - <complexContent> - <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="apachesoap:Map[]" /> </restriction> </complexContent> </complexType> </schema> </wsdl:types> - <wsdl:message name="getNameResponse"> <wsdl:part name="Greeting" type="xsd:string" /> </wsdl:message> - <wsdl:message name="getMapResponse"> <wsdl:part name="MapGreeting" type="impl:ArrayOf_apachesoap_Map" /> </wsdl:message> - <wsdl:message name="getUserRequest"> <wsdl:part name="name" type="xsd:string" /> </wsdl:message> - <wsdl:message name="getMapRequest"> <wsdl:part name="someData" type="xsd:string" /> </wsdl:message> - <wsdl:message name="getNameRequest"> <wsdl:part name="Name" type="xsd:string" /> </wsdl:message> - <wsdl:message name="getUserResponse"> <wsdl:part name="UserGreeting" type="tns1:User" /> </wsdl:message> - <wsdl:portType name="ComplexWebServiceTestEjbLocal"> - <wsdl:operation name="getName" parameterOrder="Name"> <wsdl:input message="impl:getNameRequest" name="getNameRequest" /> <wsdl:output message="impl:getNameResponse" name="getNameResponse" /> </wsdl:operation> - <wsdl:operation name="getMap" parameterOrder="someData"> <wsdl:input message="impl:getMapRequest" name="getMapRequest" /> <wsdl:output message="impl:getMapResponse" name="getMapResponse" /> </wsdl:operation> - <wsdl:operation name="getUser" parameterOrder="name"> <wsdl:input message="impl:getUserRequest" name="getUserRequest" /> <wsdl:output message="impl:getUserResponse" name="getUserResponse" /> </wsdl:operation> </wsdl:portType> - <wsdl:binding name="ComplexWebServiceTestSoapBinding" type="impl:ComplexWebServiceTestEjbLocal"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="getName"> <wsdlsoap:operation soapAction="ComplexWebServiceTest" /> - <wsdl:input name="getNameRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" use="encoded" /> </wsdl:input> - <wsdl:output name="getNameResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" use="encoded" /> </wsdl:output> </wsdl:operation> - <wsdl:operation name="getMap"> <wsdlsoap:operation soapAction="ComplexWebServiceTest" /> - <wsdl:input name="getMapRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" use="encoded" /> </wsdl:input> - <wsdl:output name="getMapResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" use="encoded" /> </wsdl:output> </wsdl:operation> - <wsdl:operation name="getUser"> <wsdlsoap:operation soapAction="ComplexWebServiceTest" /> - <wsdl:input name="getUserRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" use="encoded" /> </wsdl:input> - <wsdl:output name="getUserResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" use="encoded" /> </wsdl:output> </wsdl:operation> </wsdl:binding> - <wsdl:service name="ComplexWebServiceTestEjbLocalService"> - <wsdl:port binding="impl:ComplexWebServiceTestSoapBinding" name="ComplexWebServiceTest"> <wsdlsoap:address location="http://localhost:8080/jboss-net/services/ComplexWebServiceTest" /> </wsdl:port> </wsdl:service> </wsdl:definitions>