[jbossws-issues] [JBoss JIRA] (JBWS-3544) xsd:import not working in WSDLs if EJB WebService deployed in EAR
Timo Hirt (JIRA)
jira-events at lists.jboss.org
Fri Sep 7 03:24:32 EDT 2012
[ https://issues.jboss.org/browse/JBWS-3544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timo Hirt updated JBWS-3544:
----------------------------
Attachment: JBWS-3544-xsm-import-issue.zip
1. Extract and open root folder
2. mvn install
3. Opean ear/target
4. Deploy ear file
5. BANG
> xsd:import not working in WSDLs if EJB WebService deployed in EAR
> -----------------------------------------------------------------
>
> Key: JBWS-3544
> URL: https://issues.jboss.org/browse/JBWS-3544
> Project: JBoss Web Services
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: jbossws-cxf
> Affects Versions: jbossws-cxf-4.1.0.Beta2
> Environment: Latest JBoss AS 7.2 nightly build.
> Reporter: Timo Hirt
> Labels: cxf, wsdl, xsd
> Attachments: JBWS-3544-xsm-import-issue.zip
>
>
> I try to define some common types to be used in multiple WSLDs into a xsd file WorkPackageServiceTypes.xsd as follows:
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.example.org/Common/WorkPackageServiceTypes"
> xmlns:tns="http://www.example.org/Common/WorkPackageServiceTypes"
> elementFormDefault="qualified">
> <complexType name="WorkPackageType">
> <sequence>
> <element name="WpRunningNo" type="long"
> maxOccurs="1" minOccurs="1">
> </element>
> <element name="StartDate" type="dateTime"
> maxOccurs="1" minOccurs="1">
> </element>
> <element name="EndDate" type="dateTime"
> maxOccurs="1" minOccurs="1"></element>
> <element name="Approved" type="boolean"
> maxOccurs="1" minOccurs="1">
> </element>
> <element name="Enabled" type="boolean" maxOccurs="1"
> minOccurs="1">
> </element>
> <element name="Terminated" type="boolean"
> maxOccurs="1" minOccurs="1">
> </element>
> </sequence>
> </complexType>
> </schema>
> I import this XSD into the WSDL of a service.
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:tns="http://www.example.org/WorkPackageApprovalDService/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> name="WorkPackageApprovalDService" targetNamespace="http://www.example.org/WorkPackageApprovalDService/">
> <wsdl:types>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pref="http://www.example.org/Common/WorkPackageServiceTypes"
> targetNamespace="http://www.example.org/WorkPackageApprovalDService/">
> <xsd:import schemaLocation="WorkPackageServiceTypes.xsd"
> namespace="http://www.example.org/Common/WorkPackageServiceTypes"></xsd:import>
> <xsd:element name="approve" type="tns:WpRunningNo">
> </xsd:element>
> <xsd:element name="approveResponse">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="WorkPackage" type="pref:WorkPackageType"
> maxOccurs="1" minOccurs="1">
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="enableResponse">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="WorkPackage" type="pref:WorkPackageType"></xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="enable" type="tns:WpRunningNo"></xsd:element>
> <xsd:simpleType name="WpRunningNo">
> <xsd:restriction base="xsd:long"></xsd:restriction>
> </xsd:simpleType>
> <xsd:element name="terminateResponse">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="WorkPackage" type="pref:WorkPackageType" maxOccurs="1" minOccurs="1"></xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="terminate" type="tns:WpRunningNo"></xsd:element>
> </xsd:schema>
> </wsdl:types>
> <wsdl:message name="approveRequest">
> <wsdl:part name="WpRunningNo" element="tns:approve"></wsdl:part>
> </wsdl:message>
> <wsdl:message name="approveResponse">
> <wsdl:part name="parameters" element="tns:approveResponse"></wsdl:part>
> </wsdl:message>
> <wsdl:message name="enableRequest">
> <wsdl:part name="WpRunningNo" element="tns:enable"></wsdl:part>
> </wsdl:message>
> <wsdl:message name="enableResponse">
> <wsdl:part name="parameters" element="tns:enableResponse"></wsdl:part>
> </wsdl:message>
> <wsdl:message name="terminateRequest">
> <wsdl:part name="WpRunningNo" element="tns:terminate"></wsdl:part>
> </wsdl:message>
> <wsdl:message name="terminateResponse">
> <wsdl:part name="parameters" element="tns:terminateResponse"></wsdl:part>
> </wsdl:message>
> <wsdl:portType name="WorkPackageApprovalDService">
> <wsdl:operation name="approve">
> <wsdl:input message="tns:approveRequest"></wsdl:input>
> <wsdl:output message="tns:approveResponse"></wsdl:output>
> </wsdl:operation>
> <wsdl:operation name="enable">
> <wsdl:input message="tns:enableRequest"></wsdl:input>
> <wsdl:output message="tns:enableResponse"></wsdl:output>
> </wsdl:operation>
> <wsdl:operation name="terminate">
> <wsdl:input message="tns:terminateRequest"></wsdl:input>
> <wsdl:output message="tns:terminateResponse"></wsdl:output>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="WorkPackageApprovalDServiceSOAP" type="tns:WorkPackageApprovalDService">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http" />
> </wsdl:binding>
> <wsdl:service name="WorkPackageApprovalDService">
> <wsdl:port binding="tns:WorkPackageApprovalDServiceSOAP"
> name="WorkPackageApprovalDServiceSOAP">
> <soap:address location="http://com.ipsways.ossoa.ws" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> Both WSDL and XSD are located into the same folder (META-INF/wsdl/). wsconsume as generated all classes and stubs as expected. The web service is implemented as stateless session bean. If I package the ejb jar into an ear and deploy it to JBoss AS the following exception occurs during deployment:
> 09:08:12,156 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015876: Starting deployment of "Demo Project-1.0-SNAPSHOT.ear"
> 09:08:12,217 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "webservices-ejb-1.0-SNAPSHOT.jar"
> 09:08:12,238 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-1) JNDI bindings for session bean named WorkPackageApprovalDServiceCFEndpoint in deployment unit subdeployment "webservices-ejb-1.0-SNAPSHOT.jar" of deployment "Demo Project-1.0-SNAPSHOT.ear" are as follows:
> 09:08:12,252 INFO [org.jboss.wsf.stack.cxf.metadata.MetadataBuilder] (MSC service thread 1-3) Add Service
> id=WorkPackageApprovalDServiceCFEndpoint
> address=http://W043:8080/xsdimportdemo/WorkPackageApprovalDService/WorkPackageApprovalDServiceImpl
> implementor=org.example.workpackageapprovaldservice.WorkPackageApprovalDServiceImpl
> invoker=org.jboss.wsf.stack.cxf.JBossWSInvoker
> serviceName={http://www.example.org/WorkPackageApprovalDService/}WorkPackageApprovalDService
> portName={http://www.example.org/WorkPackageApprovalDService/}WorkPackageApprovalDServiceSOAP
> wsdlLocation=null
> mtomEnabled=false
> properties=[org.jboss.as.webservices.metadata.modelEjbComponentViewName -> service jboss.deployment.subunit."Demo Project-1.0-SNAPSHOT.ear"."webservices-ejb-1.0-SNAPSHOT.jar".component.WorkPackageApprovalDServiceCFEndpoint.VIEW."org.example.workpackageapprovaldservice.WorkPackageApprovalDServiceImpl".SERVICE_ENDPOINT]
> 09:08:12,265 INFO [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (MSC service thread 1-3) Creating Service {http://www.example.org/WorkPackageApprovalDService/}WorkPackageApprovalDService from WSDL: META-INF/wsdl/WorkPackageApprovalDService.wsdl
> 09:08:12,322 INFO [org.apache.cxf.endpoint.ServerImpl] (MSC service thread 1-3) Setting the server's publish address to be http://W043:8080/xsdimportdemo/WorkPackageApprovalDService/WorkPackageApprovalDServiceImpl
> 09:08:12,334 INFO [org.jboss.wsf.stack.cxf.deployment.WSDLFilePublisher] (MSC service thread 1-3) WSDL published to: file:/D:/dev/jboss-as-7.2.0.Alpha1-SNAPSHOT/standalone/data/wsdl/Demo%20Project-1.0-SNAPSHOT.ear/webservices-ejb-1.0-SNAPSHOT.jar/WorkPackageApprovalDService.wsdl
> 09:08:12,340 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.deployment.subunit."Demo Project-1.0-SNAPSHOT.ear"."webservices-ejb-1.0-SNAPSHOT.jar".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."Demo Project-1.0-SNAPSHOT.ear"."webservices-ejb-1.0-SNAPSHOT.jar".INSTALL: JBAS018733: Failed to process phase INSTALL of subdeployment "webservices-ejb-1.0-SNAPSHOT.jar" of deployment "Demo Project-1.0-SNAPSHOT.ear"
> at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:123) [jboss-as-server-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [rt.jar:1.6.0_27]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.6.0_27]
> at java.lang.Thread.run(Unknown Source) [rt.jar:1.6.0_27]
> Caused by: java.lang.RuntimeException: Cannot publish wsdl to: D:\dev\jboss-as-7.2.0.Alpha1-SNAPSHOT\standalone\data\wsdl\Demo Project-1.0-SNAPSHOT.ear\webservices-ejb-1.0-SNAPSHOT.jar\WorkPackageApprovalDService.wsdl
> at org.jboss.wsf.stack.cxf.deployment.WSDLFilePublisher.publishWsdlFiles(WSDLFilePublisher.java:107)
> at org.jboss.wsf.stack.cxf.deployment.EndpointImpl.publishContractToFilesystem(EndpointImpl.java:133)
> at org.jboss.wsf.stack.cxf.deployment.EndpointImpl.doPublish(EndpointImpl.java:75)
> at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:246)
> at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:525)
> at org.jboss.wsf.stack.cxf.configuration.NonSpringBusHolder.configure(NonSpringBusHolder.java:119)
> at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.startDeploymentBus(BusDeploymentAspect.java:129)
> at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.start(BusDeploymentAspect.java:68)
> at org.jboss.as.webservices.deployers.AspectDeploymentProcessor.deploy(AspectDeploymentProcessor.java:74)
> at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:116) [jboss-as-server-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
> ... 5 more
> Caused by: java.io.IOException: JBAS015526: Child 'META-INF/wsdl/dl/Demo%20Project-1.0-SNAPSHOT.ear/webservices-ejb-1.0-SNAPSHOT.jar/WorkPackageServiceTypes.xsd' not found for VirtualFile: "/D:/dev/jboss-as-7.2.0.Alpha1-SNAPSHOT/bin/content/Demo Project-1.0-SNAPSHOT.ear/webservices-ejb-1.0-SNAPSHOT.jar"
> at org.jboss.as.webservices.util.VirtualFileAdaptor.findChild(VirtualFileAdaptor.java:62)
> at org.jboss.ws.common.deployment.ResourceResolverImpl.resolve(ResourceResolverImpl.java:79)
> at org.jboss.ws.common.utils.AbstractWSDLFilePublisher.publishSchemaImports(AbstractWSDLFilePublisher.java:223)
> at org.jboss.ws.common.utils.AbstractWSDLFilePublisher.publishSchemaImports(AbstractWSDLFilePublisher.java:249)
> at org.jboss.ws.common.utils.AbstractWSDLFilePublisher.publishSchemaImports(AbstractWSDLFilePublisher.java:249)
> at org.jboss.wsf.stack.cxf.deployment.WSDLFilePublisher.publishWsdlFiles(WSDLFilePublisher.java:94)
> ... 14 more
> 09:08:12,550 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS015870: Deploy of deployment "Demo Project-1.0-SNAPSHOT.ear" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.subunit.\"Demo Project-1.0-SNAPSHOT.ear\".\"webservices-ejb-1.0-SNAPSHOT.jar\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"Demo Project-1.0-SNAPSHOT.ear\".\"webservices-ejb-1.0-SNAPSHOT.jar\".INSTALL: JBAS018733: Failed to process phase INSTALL of subdeployment \"webservices-ejb-1.0-SNAPSHOT.jar\" of deployment \"Demo Project-1.0-SNAPSHOT.ear\"
> Caused by: java.lang.RuntimeException: Cannot publish wsdl to: D:\\dev\\jboss-as-7.2.0.Alpha1-SNAPSHOT\\standalone\\data\\wsdl\\Demo Project-1.0-SNAPSHOT.ear\\webservices-ejb-1.0-SNAPSHOT.jar\\WorkPackageApprovalDService.wsdl
> Caused by: java.io.IOException: JBAS015526: Child 'META-INF/wsdl/dl/Demo%20Project-1.0-SNAPSHOT.ear/webservices-ejb-1.0-SNAPSHOT.jar/WorkPackageServiceTypes.xsd' not found for VirtualFile: \"/D:/dev/jboss-as-7.2.0.Alpha1-SNAPSHOT/bin/content/Demo Project-1.0-SNAPSHOT.ear/webservices-ejb-1.0-SNAPSHOT.jar\""},"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.comp.\"Demo Project-1.0-SNAPSHOT\".\"webservices-ejb-1.0-SNAPSHOT\".WorkPackageApprovalDServiceCFEndpoint.Validator Missing[jboss.naming.context.java.comp.\"Demo Project-1.0-SNAPSHOT\".\"webservices-ejb-1.0-SNAPSHOT\".WorkPackageApprovalDServiceCFEndpoint]","jboss.naming.context.java.comp.\"Demo Project-1.0-SNAPSHOT\".\"webservices-ejb-1.0-SNAPSHOT\".WorkPackageApprovalDServiceCFEndpoint.ValidatorFactory Missing[jboss.naming.context.java.comp.\"Demo Project-1.0-SNAPSHOT\".\"webservices-ejb-1.0-SNAPSHOT\".WorkPackageApprovalDServiceCFEndpoint]","jboss.deployment.unit.\"Demo Project-1.0-SNAPSHOT.ear\".CLEANUP Missing[JBAS014861: <one or more transitive dependencies>]"]}
> 09:08:12,553 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 1) JBAS014774: Service status report
> JBAS014775: New missing/unsatisfied dependencies:
> service jboss.naming.context.java.comp."Demo Project-1.0-SNAPSHOT"."webservices-ejb-1.0-SNAPSHOT".WorkPackageApprovalDServiceCFEndpoint (missing) dependents: [service jboss.naming.context.java.comp."Demo Project-1.0-SNAPSHOT"."webservices-ejb-1.0-SNAPSHOT".WorkPackageApprovalDServiceCFEndpoint.Validator, service jboss.naming.context.java.comp."Demo Project-1.0-SNAPSHOT"."webservices-ejb-1.0-SNAPSHOT".WorkPackageApprovalDServiceCFEndpoint.ValidatorFactory]
> JBAS014777: Services which failed to start: service jboss.deployment.subunit."Demo Project-1.0-SNAPSHOT.ear"."webservices-ejb-1.0-SNAPSHOT.jar".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."Demo Project-1.0-SNAPSHOT.ear"."webservices-ejb-1.0-SNAPSHOT.jar".INSTALL: JBAS018733: Failed to process phase INSTALL of subdeployment "webservices-ejb-1.0-SNAPSHOT.jar" of deployment "Demo Project-1.0-SNAPSHOT.ear"
> 09:08:12,555 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.subunit.\"Demo Project-1.0-SNAPSHOT.ear\".\"webservices-ejb-1.0-SNAPSHOT.jar\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"Demo Project-1.0-SNAPSHOT.ear\".\"webservices-ejb-1.0-SNAPSHOT.jar\".INSTALL: JBAS018733: Failed to process phase INSTALL of subdeployment \"webservices-ejb-1.0-SNAPSHOT.jar\" of deployment \"Demo Project-1.0-SNAPSHOT.ear\"
> Caused by: java.lang.RuntimeException: Cannot publish wsdl to: D:\\dev\\jboss-as-7.2.0.Alpha1-SNAPSHOT\\standalone\\data\\wsdl\\Demo Project-1.0-SNAPSHOT.ear\\webservices-ejb-1.0-SNAPSHOT.jar\\WorkPackageApprovalDService.wsdl
> Caused by: java.io.IOException: JBAS015526: Child 'META-INF/wsdl/dl/Demo%20Project-1.0-SNAPSHOT.ear/webservices-ejb-1.0-SNAPSHOT.jar/WorkPackageServiceTypes.xsd' not found for VirtualFile: \"/D:/dev/jboss-as-7.2.0.Alpha1-SNAPSHOT/bin/content/Demo Project-1.0-SNAPSHOT.ear/webservices-ejb-1.0-SNAPSHOT.jar\""},"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.comp.\"Demo Project-1.0-SNAPSHOT\".\"webservices-ejb-1.0-SNAPSHOT\".WorkPackageApprovalDServiceCFEndpoint.Validator Missing[jboss.naming.context.java.comp.\"Demo Project-1.0-SNAPSHOT\".\"webservices-ejb-1.0-SNAPSHOT\".WorkPackageApprovalDServiceCFEndpoint]","jboss.naming.context.java.comp.\"Demo Project-1.0-SNAPSHOT\".\"webservices-ejb-1.0-SNAPSHOT\".WorkPackageApprovalDServiceCFEndpoint.ValidatorFactory Missing[jboss.naming.context.java.comp.\"Demo Project-1.0-SNAPSHOT\".\"webservices-ejb-1.0-SNAPSHOT\".WorkPackageApprovalDServiceCFEndpoint]","jboss.deployment.unit.\"Demo Project-1.0-SNAPSHOT.ear\".CLEANUP Missing[JBAS014861: <one or more transitive dependencies>]"]}}}
> 09:08:12,569 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015877: Stopped deployment webservices-ejb-1.0-SNAPSHOT.jar in 12ms
> 09:08:12,571 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015877: Stopped deployment Demo Project-1.0-SNAPSHOT.ear in 14ms
> If I deploy the jar directly without packaging into an ear it works.
--
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
More information about the jbossws-issues
mailing list