[
https://issues.apache.org/jira/browse/CXF-4676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13546588#comment-13546588
]
Freeman Fang commented on CXF-4676:
-----------------------------------
Unfortunately this can also cause another test failure at
{code}
Running org.apache.cxf.systest.http.HTTPSClientTest
Tests run: 7, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.694 sec <<<
FAILURE!
testResourceKeySpecEndpointURL(org.apache.cxf.systest.http.HTTPSClientTest)
Time elapsed: 0.321 sec <<< ERROR!
org.apache.cxf.service.factory.ServiceConstructionException: Failed to create
service.
at
org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:86)
at
org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:292)
at
org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:235)
at
org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:228)
at
org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:183)
at
org.apache.cxf.systest.http.HTTPSClientTest.testSuccessfulCall(HTTPSClientTest.java:114)
at
org.apache.cxf.systest.http.HTTPSClientTest.testResourceKeySpecEndpointURL(HTTPSClientTest.java:170)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:113)
at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: javax.wsdl.WSDLException: WSDLException (at /soap:Envelope):
faultCode=INVALID_WSDL: Expected element
'{http://schemas.xmlsoap.org/wsdl/}definitions'.
at com.ibm.wsdl.xml.WSDLReaderImpl.checkElementName(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at
org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:260)
at
org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:205)
at
org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:84)
... 38 more
{code}
You really should run all tests and ensure all passed with your patch
> 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
>
>
> 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