[ https://issues.apache.org/activemq/browse/SM-739?page=all ]

Christian Schneider updated SM-739:
-----------------------------------

    Attachment: test.zip

Sorry .. I had some problems creating the patch in eclipse. The model was 
completely missing.
I have now simply packed all in a zip file. 

You can simply extract it to the src/test/java dir of servicemix-jsr181 the 
test will fail at the moment
with the following message:
junit.framework.AssertionFailedError: Type definitions present for namespace 
http://model.complex.test

When you move the service interface and implementation to test.complex.model 
the test will work.


> wsdl for pojos exported by jsr181 endpoint is missing complextypes from other 
> namespaces than the service itself
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: SM-739
>                 URL: https://issues.apache.org/activemq/browse/SM-739
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-jsr181
>    Affects Versions: 3.0
>            Reporter: Christian Schneider
>         Attachments: complextypetestpatch.txt, jsr181wsdlproblem..zip, 
> test.zip
>
>
> I am exporting a pojo Service in namespace http://test1 that uses a Class 
> from namespace http://test2 as a jsr181 endpoint.
> The wsdl I get from jconsole for the endpoint does not include the definition 
> of the Complextype Person from http://test2.
> If you put the Person class in the package test1 the wsdl looks fine. The 
> problem does not happen when using xfire without servicemix. 
> Thanks to Ken Berthelot for reporting the problem on the mailing list. 
> http://mail-archives.apache.org/mod_mbox/geronimo-servicemix-users/200611.mbox/browser
> ---
> My xbean.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://xbean.org/schemas/spring/1.0";
>       xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0";>
>       <classpath>
>               <location>.</location>
>       </classpath>
>       <jsr181:endpoint
>               pojoClass="test1.PersonServiceImpl"
>               serviceInterface="test1.PersonService"
>               style="wrapped">
>       </jsr181:endpoint>
> </beans>
> ---
> My Classes
> package test1;
> import test2.Person;
> public interface PersonService {
>       public abstract void testPerson(Person person);
> }
> package test1;
> import test2.Person;
> public class PersonServiceImpl implements PersonService {
>       /* (non-Javadoc)
>        * @see test1.PersonService#testPerson(test2.Person)
>        */
>       public void testPerson(Person person) {
>               
>       }
> }
> package test2;
> public class Person {
>       String name;
>       public String getName() {
>               return name;
>       }
>       public void setName(String name) {
>               this.name = name;
>       }
> }
> ----
> The wsdl
> <?xml version="1.0" encoding="UTF-8"?><wsdl:definitions 
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:ns1="http://test2"; 
> xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"; 
> xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"; 
> xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"; 
> xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"; 
> xmlns:tns="http://test1"; 
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://test1";>
>   <wsdl:types>
>     <xsd:schema attributeFormDefault="qualified" 
> elementFormDefault="qualified" targetNamespace="http://test1";>
> <xsd:element name="testPerson">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" 
> type="ns1:Person"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="testPersonResponse">
> <xsd:complexType/>
> </xsd:element>
> </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="testPersonResponse">
>     <wsdl:part element="tns:testPersonResponse" name="parameters"/>
>   </wsdl:message>
>   <wsdl:message name="testPersonRequest">
>     <wsdl:part element="tns:testPerson" name="parameters"/>
>   </wsdl:message>
>   <wsdl:portType name="PersonServicePortType">
>     <wsdl:operation name="testPerson">
>       <wsdl:input message="tns:testPersonRequest" name="testPersonRequest"/>
>       <wsdl:output message="tns:testPersonResponse" 
> name="testPersonResponse"/>
>     </wsdl:operation>
>   </wsdl:portType>
> </wsdl:definitions>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to