[ 
https://issues.apache.org/jira/browse/CXF-4676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13549454#comment-13549454
 ] 

Freeman Fang commented on CXF-4676:
-----------------------------------

Hi Iris,

No problem.  Yeah, set up an efficient machine is the first thing to do, you 
can benefit more from this investment, :-)
Also using "mvn install" will take you some time to download all dependencies 
if you first time run it on your machine, so there's no rush, take your time.

Thanks for the contribution so far.

Freeman
                
> Partial WSDL support in CXF 
> ----------------------------
>
>                 Key: CXF-4676
>                 URL: https://issues.apache.org/jira/browse/CXF-4676
>             Project: CXF
>          Issue Type: Bug
>          Components: Services
>    Affects Versions: 2.6.2
>            Reporter: iris ding
>            Assignee: Freeman Fang
>         Attachments: cxf-4676.patch, cxf-4676-test.patch
>
>
> I have one SEI defined as below:
> @WebService(wsdlLocation="WEB-INF/wsdl/AddNumbersImplPartial1Service.wsdl")
> public class AddNumbersImplPartial1 {
>        
>         public int addTwoNumbers(int number1, int number2) throws 
> AddNegativeNumbersException {
>                 if (number1 < 0 || number2 < 0) {
>                         throw new AddNegativeNumbersException("Negative 
> number submitted !! ", "Numbers: " +
>                                                               number1 + ", " 
> + number2);
>                 }
>                 return number1 + number2;
>         }
> }
> The WEB-INF/wsdl/AddNumbersImplPartial1Service.wsdl is not complete, it only 
> contains to the porttype part:
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <definitions
> targetNamespace="http://serverpartial1.partialwsdl.annotations/"; 
> name="AddNumbersImplPartial1Service"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
> xmlns:tns="http://serverpartial1.partialwsdl.annotations/";
> xmlns="http://schemas.xmlsoap.org/wsdl/";>
>   <types>
>     <xsd:schema>
>       <xsd:import namespace="http://serverpartial1.partialwsdl.annotations/"; 
> schemaLocation="AddNumbersImplPartial1Service_schema1.xsd"/>
>     </xsd:schema>
>   </types>
>   <message name="addTwoNumbers">
>     <part name="parameters" element="tns:addTwoNumbers"/>
>   </message>
>   <message name="addTwoNumbersResponse">
>     <part name="parameters" element="tns:addTwoNumbersResponse"/>
>   </message>
>   <message name="AddNegativeNumbersException">
>     <part name="fault" element="tns:AddNegativeNumbersException"/>
>   </message>
>   <portType name="AddNumbersImplPartial1">
>     <operation name="addTwoNumbers">
>       <input message="tns:addTwoNumbers"/>
>       <output message="tns:addTwoNumbersResponse"/>
>       <fault name="AddNegativeNumbersException" 
> message="tns:AddNegativeNumbersException"/>
>     </operation>
>   </portType>
>  
> </definitions>
> Now if I put the war file into tomcat and let it use CXF, the service can not 
> be deployed successfully. In CXF, when it calls WSDLServiceFactory.create, it 
> will simply get the service name from wsdl file and in our case, since it is 
> empty, it will throw exception and service deployment failed. you can 
> reference below part:
> javax.wsdl.Service wsdlService = definition.getService(serviceName);
>             if (wsdlService == null) {
>                 throw new ServiceConstructionException(new 
> Message("NO_SUCH_SERVICE_EXC", LOG, serviceName));
>             }
> But per jaxws 2.2 spec, in chapter 5.2.5.5:
> 5.2.5.5 Application-specified PortType
> No metadata document contains a definition for the sought-after service S, 
> but a metadata document, say
> D, contains a definition for the WSDL portType whose qualified name, say P, 
> matches that specified by the
> endpoint being published. In this case, a JAX-WS implementation MUST create a 
> new description for S,
> including an appropriate WSDL binding element referencing portType P. The 
> metadata document D MUST
> be imported/included so that the published contract uses the definition of P 
> provided by D. No schema generation
> occurs,as P is assumed to embed or import schema definitions for all the 
> types/elements it requires.
> Like in the previous case, the implementation MUST override any location and 
> schemaLocation attributes.
> It is an error if more than one metadata document contains a definition for 
> the sought-after portType
> P.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to