![](/img/trans.png)
[英]Springboot demo application doesn't get deployed correctly on Wildfly
[英]Spring CXF Webservice doesn't get deployed correctly
情況就是這樣:我們有一個Spring-MVC應用程序,現在應該提供契約優先的SOAP Web服務。 看完CXF示例(wsdl_first)之后,我終於設法做到了這一點:
我生成了骨架類,並且還實現了服務接口。
Tomcat 7似乎部署了一些東西:
12 Jan 2014 19:32:08,386 INFO org.apache.cxf.service.factory.ReflectionServiceFactoryBean:411 - Creating Service {urn:webservice.x.com:wsdl}IdmAdapterService from WSDL: classpath:IdmAdapterService.wsdl
我創建了第二個servlet,它應該處理webservice調用。 WEB-INF / web.xml包含:
<servlet>
<servlet-name>webservices</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>webservices</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
WEB-INF / cxf-servlet.xml包含:
<jaxws:endpoint xmlns:tns="urn:webservice.x.com:wsdl"
id="idmAdapterImpl" address="/services/IdmAdapterService"
serviceName="tns:IdmAdapterService" endpointName="tns:IdmAdapterSoapPort"
implementor="de.y.idm.IdmAdapterImpl"
/>
src / main / resources / cxf.xml包含:
<jaxws:endpoint name="{urn:webservice.x.com:wsdl}:IdmAdapterSoapPort"
wsdlLocation="IdmAdapterService.wsdl">
<jaxws:properties>
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:endpoint>
src / main / resources / server-applicationContext.xml包含:
<!-- HTTP Endpoint -->
<jaxws:endpoint xmlns:tns="urn:webservice.x.com:wsdl"
id="idmAdapterImpl"
address="/services/IdmAdapterService"
serviceName="tns:IdmAdapterService"
endpointName="tns:IdmAdapterSoapPort"
implementor="de.y.idm.IdmAdapterImpl">
<jaxws:features>
<bean class="org.apache.cxf.feature.LoggingFeature" />
</jaxws:features>
</jaxws:endpoint>
當我呼叫網址時
http://localhost:8080/application/services/IdmAdaptorService?wsdl
我總是以
No service was found.
並在控制台上
12 Jan 2014 19:51:53,731 DEBUG org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter:136 - Opening JPA EntityManager in OpenEntityManagerInViewFilter
12 Jan 2014 19:51:53,732 DEBUG org.springframework.security.util.FilterChainProxy:205 - Converted URL to lowercase, from: '/services/idmadapterservice'; to: '/services/idmadapterservice'
12 Jan 2014 19:51:53,732 DEBUG org.springframework.security.util.FilterChainProxy:212 - Candidate is: '/services/idmadapterservice'; pattern is /services/**; matched=true
12 Jan 2014 19:51:53,733 DEBUG org.springframework.security.util.FilterChainProxy:165 - has an empty filter list
12 Jan 2014 19:51:53,733 WARN org.apache.cxf.transport.servlet.ServletController:175 - Can't find the the request for http://localhost:8080/application/services/IdmAdapterService's Observer
12 Jan 2014 19:51:53,734 DEBUG org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter:154 - Closing JPA EntityManager in OpenEntityManagerInViewFilter
12 Jan 2014 19:51:53,734 DEBUG org.springframework.orm.jpa.EntityManagerFactoryUtils:338 - Closing JPA EntityManager
我錯過了什么,可能是什么問題?
提前致謝。
server-applicationContext.xml
的/services/IdmAdapterService
是相對於CXFServlet
的servlet映射,即/services/*
。 所以你的實際服務路徑應該是:
http://localhost:8080/application/services/services/IdmAdapterService
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.