No service was found with warning: Can't find the request for a service's
Observer
----------------------------------------------------------------------------------
Key: CXF-2236
URL: https://issues.apache.org/jira/browse/CXF-2236
Project: CXF
Issue Type: Bug
Components: JAX-WS Runtime
Affects Versions: 2.1.3, 2.0.7
Environment: Windows XP, JDK 1.5.0_17 and JDK 6.0, Tomcat 5.5.27 and
JBoss 4.2.3 GA
Reporter: Xinxin Wang
I created a web service using WSDL2Java approach. I was able to deploy the
service to the Tomcat or JBoss servers no exception. However, when send a
request to the service using soapUI. I got 'No service was found' on the
browser and a warning on the output:
Can't find the request for
http://localhost:8080/JAXBDataService/services/RetrieveService's Observer
I am attaching related info here:
The WSDL of my service is:
-------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:acf="urn:soa.army.mil:adsl:sis:09-1:1-1:common:fault"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:apret="urn:soa.army.mil:adsl:sis:09-1:1-1:pattern:retrieve:type:bma:log:ums-ds"
targetNamespace="urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds">
<wsdl:documentation>
This service retrieve Unit Master Schedule information from AST.
</wsdl:documentation>
<wsdl:types>
<xs:schema
xmlns:acc="urn:soa.army.mil:adsl:sis:09-1:1-1:common:core"
xmlns:acf="urn:soa.army.mil:adsl:sis:09-1:1-1:common:fault"
xmlns:ums="http://metadata.dod.mil/mdr/ns/ums/1.0"
xmlns:tns="urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds"
xmlns:aapret="urn:soa.army.mil:adsl:sis:09-1:1-1:pattern:abstract:retrieve:type"
targetNamespace="urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds"
elementFormDefault="qualified"
attributeFormDefault="unqualified" version="1.0">
<xs:import
namespace="urn:soa.army.mil:adsl:sis:09-1:1-1:common:fault"
schemaLocation="adsl/schema/common/adslCommonFault.xsd"/>
<xs:import
namespace="urn:soa.army.mil:adsl:sis:09-1:1-1:common:core"
schemaLocation="adsl/schema/common/adslCommonCore.xsd"/>
<xs:import
namespace="urn:soa.army.mil:adsl:sis:09-1:1-1:pattern:abstract:retrieve:type"
schemaLocation="adsl/schema/pattern/abstract/adslPtnRetrieve.xsd"/>
<xs:import namespace="http://metadata.dod.mil/mdr/ns/ums/1.0"
schemaLocation="ums/ums.xsd"/>
<xs:complexType name="IdentifierType">
<xs:complexContent>
<xs:extension base="acc:GenericIdentifierType">
<xs:sequence>
<xs:element name="UIC"
type="xs:string" minOccurs="0"/>
<xs:element
name="Cycle" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RetrieveRequestType">
<xs:complexContent>
<xs:extension
base="aapret:GenericRetrieveRequestType">
<xs:sequence>
<xs:element
name="Identifier" type="tns:IdentifierType" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RetrieveResultType">
<xs:complexContent>
<xs:extension
base="aapret:GenericRetrieveResultType">
<xs:sequence>
<xs:element
ref="ums:UnitMasterSchedule" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Results"
type="tns:RetrieveResultType"/>
<xs:complexType name="RetrieveResponseType">
<xs:complexContent>
<xs:extension
base="aapret:GenericRetrieveResponseType">
<xs:sequence>
<xs:element
ref="tns:Results"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="RetrieveRequest"
type="tns:RetrieveRequestType"/>
<xs:element name="RetrieveResponse"
type="tns:RetrieveResponseType"/>
</xs:schema>
</wsdl:types>
<wsdl:message name="RetrieveRequestMessage">
<wsdl:part name="Request" element="tns:RetrieveRequest"/>
</wsdl:message>
<wsdl:message name="RetrieveResponseMessage">
<wsdl:part name="Response" element="tns:RetrieveResponse"/>
</wsdl:message>
<wsdl:message name="RetrievePtnFaultMessage">
<wsdl:part name="fault" element="acf:AdslFaults"/>
</wsdl:message>
<wsdl:portType name="RetrievePortType">
<wsdl:operation name="Retrieve">
<wsdl:input message="tns:RetrieveRequestMessage"
name="RetrieveRequest"/>
<wsdl:output message="tns:RetrieveResponseMessage"
name="RetrieveResponse"/>
<wsdl:fault name="ADSLFault"
message="tns:RetrievePtnFaultMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="RetrieveSOAPBinding" type="tns:RetrievePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Retrieve">
<soap:operation/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ADSLFault">
<soap:fault name="ADSLFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="RetrieveService">
<wsdl:port name="RetrieveServiceHttpPort"
binding="tns:RetrieveSOAPBinding">
<soap:address
location="http://localhost:8080/JAXBDataService/services/RetrieveService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
I use WSDL2Java to generate port type class and Jaxbbinding classes. The
implementation class is declared as:
-----------------------------------------------------------------------------------------------------------------------------------------
@WebService(serviceName = "RetrieveService",
portName="RetrieveServiceHttpPort", targetNamespace =
"urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds", endpointInterface
= "mil.army.soa.adsl.sis._09_1._1_1.service.bma.log.ums_ds.RetrievePortType")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public class UMSRetrievePortTypeImpl implements RetrievePortType {
public UMSRetrievePortTypeImpl() throws Exception {
super();
operationImpl = new OperationImpl("Retrieve", helper);
log.info("UMSRetrievePortTypeImpl created.");
}
public RetrieveResponseType retrieve(RetrieveRequestType request)
throws RetrievePtnFaultMessage {
............
}
The web.xml file is:
--------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="JAXBDataService"
version="2.5">
<display-name>JAXB UMS Data Service</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:umsDataServiceContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
The configuration file (umsDataServiceContext.xml) is:
--------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:cxf="http://cxf.apache.org/core"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/core
http://cxf.apache.org/schemas/core.xsd" >
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<jaxws:endpoint
xmlns:ums="urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds"
id="ums.data.service.impl"
serviceName = "ums:RetrieveService"
endpointName = "ums:RetrieveServiceHttpPort"
implementor="smil.mil.army.forscom.ums._09_1._1_0.impl.UMSRetrievePortTypeImpl"
wsdlLocation = "WEB-INF/wsdl/UMSDataServiceRi.wsdl"
address="http://localhost:8080/JAXBDataService/services/RetrieveService">
<jaxws:properties>
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:endpoint>
<cxf:bus>
<cxf:features>
<cxf:logging/>
</cxf:features>
</cxf:bus>
</beans>
When I deployed the service to Tomcat, I got the following output:
------------------------------------------------------------------------------------------
May 22, 2009 10:27:38 AM org.apache.catalina.core.AprLifecycleListener
lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in
production environments was not found on the java.library.path: C:\Program
Files\Java\jdk1.5.0_17\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\jasypt-1.5\bin;C:\oraclexe\app\oracle\product\10.2.0\server\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program
Files\Intel\Wireless\Bin\;C:\Program
Files\ThinkPad\ConnectUtilities;C:\WINDOWS\system32\nls;C:\WINDOWS\system32\nls\ENGLISH;C:\Program
Files\IBM ThinkVantage\Client Security Solution;C:\Program
Files\QuickTime\QTSystem\;C:\Program
Files\TortoiseSVN\bin;C:\apache-cxf-2.0.7\bin;C:\jaxb-ri-2.1.3\bin;C:\Program
Files\Java\jdk1.5.0_17\bin;C:\apache-maven-2.0.9\bin;c:\Program Files\Microsoft
SQL Server\90\Tools\binn\;C:\apache-cxf-2.0.7\bin;C:\Program Files\Windows
Imaging\;C:\wsi-test-tools\java\bin
May 22, 2009 10:27:38 AM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
May 22, 2009 10:27:38 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 893 ms
May 22, 2009 10:27:38 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
May 22, 2009 10:27:38 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.27
May 22, 2009 10:27:38 AM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
May 22, 2009 10:27:38 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
May 22, 2009 10:27:38 AM org.springframework.web.context.ContextLoader
initWebApplicationContext
INFO: Root WebApplicationContext: initialization started
May 22, 2009 10:27:38 AM
org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing
org.springframework.web.context.support.xmlwebapplicationcont...@ae3364:
display name [Root WebApplicationContext]; startup date [Fri May 22 10:27:38
EDT 2009]; root of context hierarchy
May 22, 2009 10:27:38 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[umsDataServiceContext.xml]
May 22, 2009 10:27:39 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf.xml]
May 22, 2009 10:27:39 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-soap.xml]
May 22, 2009 10:27:39 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-servlet.xml]
May 22, 2009 10:27:41 AM
mil.army.soa.adsl.common.impl.GenericPortTypeImplHelper
getDataServiceCongiguration
INFO: GenericPortTypeImplHelper for JAXB UMS Data Service created.
May 22, 2009 10:27:41 AM
smil.mil.army.forscom.ums._09_1._1_0.impl.UMSPortTypeImplHelper <init>
INFO: UMSPortTypeImplHepler created.
May 22, 2009 10:27:41 AM mil.army.soa.adsl.common.impl.OperationImpl <init>
INFO: OperationImpl for JAXB UMS Data Service created.
May 22, 2009 10:27:41 AM
smil.mil.army.forscom.ums._09_1._1_0.impl.UMSRetrievePortTypeImpl <init>
INFO: UMSRetrievePortTypeImpl created.
May 22, 2009 10:27:41 AM
org.springframework.beans.factory.support.DefaultListableBeanFactory
registerBeanDefinition
INFO: Overriding bean definition for bean 'cxf': replacing [Root bean: class
[org.apache.cxf.bus.CXFBusImpl]; scope=singleton; abstract=false;
lazyInit=false; autowireCandidate=true; autowireMode=0; dependencyCheck=0;
factoryBeanName=null; factoryMethodName=null; initMethodName=null;
destroyMethodName=null; defined in class path resource [META-INF/cxf/cxf.xml]]
with [Root bean: class [org.apache.cxf.bus.CXFBusImpl]; scope=singleton;
abstract=false; lazyInit=false; autowireCandidate=true; autowireMode=0;
dependencyCheck=0; factoryBeanName=null; factoryMethodName=null;
initMethodName=null; destroyMethodName=null]
May 22, 2009 10:27:41 AM
org.springframework.context.support.AbstractApplicationContext
obtainFreshBeanFactory
INFO: Bean factory for application context
[org.springframework.web.context.support.xmlwebapplicationcont...@ae3364]:
org.springframework.beans.factory.support.defaultlistablebeanfact...@490342
May 22, 2009 10:27:41 AM
org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker
postProcessAfterInitialization
INFO: Bean 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor' is not eligible
for getting processed by all BeanPostProcessors (for example: not eligible for
auto-proxying)
May 22, 2009 10:27:41 AM
org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker
postProcessAfterInitialization
INFO: Bean 'org.apache.cxf.bus.spring.BusExtensionPostProcessor' is not
eligible for getting processed by all BeanPostProcessors (for example: not
eligible for auto-proxying)
May 22, 2009 10:27:41 AM
org.springframework.beans.factory.support.DefaultListableBeanFactory
preInstantiateSingletons
INFO: Pre-instantiating singletons in
org.springframework.beans.factory.support.defaultlistablebeanfact...@490342:
defining beans
[cxf,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.endpoint.ServiceContractResolverRegistry,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.transport.servlet.ServletTransportFactory,ums.data.service.impl.jaxws-endpoint];
root of factory hierarchy
May 22, 2009 10:27:41 AM org.springframework.web.context.ContextLoader
initWebApplicationContext
INFO: Root WebApplicationContext: initialization completed in 3055 ms
May 22, 2009 10:27:41 AM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
May 22, 2009 10:27:42 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
May 22, 2009 10:27:42 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/47 config=null
May 22, 2009 10:27:42 AM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
May 22, 2009 10:27:42 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3917 ms
When I point the browser to http://localhost:8080/JAXBDataService/services/, I
got this output:
------------------------------------------------------------------------------------------------------------------------------
Available services:
RetrievePortType
Retrieve
Endpoint address:
http://localhost:8080/JAXBDataService/services/RetrieveService
Wsdl: {urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds}RetrieveService
Target namespace: urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds
When I sent the following SOAP message from soapUI to the service, I got 'No
service was found' and a warning on the consoler: Can't find the request for
http://localhost:8080/JAXBDataService/services/RetrieveService's Observer:
---------------------------------------------------------------------------------------------------------
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds">
<soapenv:Header/>
<soapenv:Body>
<urn:RetrieveRequest/>
</soapenv:Body>
</soapenv:Envelope>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.