我學習我的註釋與類@WebService我注意到,當我部署到TomEE加(V1.6)我得到一個額外的「繩索通過@WebService產生的「Web服務」路徑web服務'的話。如何改變TomEE
我想刪除它或重命名它,如果可能的話。
鑑於此代碼命名的WebAPI-DEV Eclipse項目:
import java.util.List;
import javax.ejb.Stateless;
import javax.jws.WebService;
@Stateless
@WebService
public class WEBAPIImplementation {
public List<Client> getClientsByTerm(String term) {
return null;
}
}
我發現在卡特琳娜記錄以下:
Dec 10, 2013 3:49:05 PM org.apache.openejb.server.webservices.WsService deployApp
INFO: Webservice(wsdl=http://mylocalhost.com:8080/WebAPI-DEV/webservices/WEBAPIImplementation, qname={http://mylocalhost.com:8080/webapi}WEBAPIImplementationService) --> Ejb(id=WEBAPIImplementation)
的URL http://mylocalhost.com:8080/WebAPI-DEV/webservices/WEBAPIImplementation
已經 'web服務' 包括在內。
我寧願有定義我的web網址的確切名稱更多的控制。
這可能嗎?
UPDATE(2013-DEC-16): 我跟着從
http://blog.sortedset.com/step-by-step-web-services-with-tomcat-tomee-apache-cxf-eclipse/
基本上在這樣@WebService註釋導致錯誤的參數簡明教程:
org.apache.openejb.config.ValidationFailedException: Module failed validation. AppModule(name=TEST-WS)
和...
org.apache.catalina.LifecycleException: An invalid Lifecycle transition was attempted ([before_destroy]) for component [StandardEngine[Catalina].StandardHost[mylocalhost.com].StandardContext[/TEST-WS]] in state [STARTING_PREP]
...
SEVERE: Error deploying web application archive C:\apache-tomee-plus-1.6.0\webapps\TEST-WS.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[mylocalhost.com].StandardContext[/TEST-WS]]
我原本這些參數@WebService (replace sortedset.com for localhost):
@WebService(
portName = "HelloTomEEPort",
serviceName = "HelloTomEEService",
targetNamespace = "http://localhost/wsdl",
endpointInterface = "HelloTomEEWs")
這裏是我的兩個源文件(我開始從頭開始一個新項目):
TESTWS .java
import javax.jws.WebService;
@WebService
public interface TESTWS {
public int sum(int add1, int add2);
public int multiply(int mul1, int mul2);
}
TESTWSImpl.java
import javax.ejb.Stateless;
import javax.jws.WebService;
@Stateless
@WebService
public class TESTWSImpl implements TESTWS {
public int sum(int add1, int add2) {
return add1 + add2;
}
public int multiply(int mul1, int mul2) {
return mul1 * mul2;
}
}
此代碼允許TomEE來啓動,但是當我請求URL(如catalina.log找到):
我得到這個錯誤:
Dec 16, 2013 5:21:57 PM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
WARNING: Interceptor for {http://mylocalhost.com/wsdl}TESTWSImplService has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: No such operation: TEST-WS (HTTP GET PATH_INFO: /TEST-WS/webservices/TESTWSImplnull)
at org.apache.cxf.interceptor.URIMappingInterceptor.handleMessage(URIMappingInterceptor.java:93)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:237)
at org.apache.openejb.server.cxf.CxfWsContainer.onMessage(CxfWsContainer.java:85)
at org.apache.openejb.server.webservices.WsServlet.service(WsServlet.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
什麼導致「沒有這樣的操作」?
我在哪裏可以找到@WebService的參數,良好的文檔?
注:更換mylocalhost。COM與本地主機
UPDATE(2013-DEC-17): 我被錯誤地調用Web服務,正確的URL應該是:
http://mylocalhost.com:8080/TEST-WS/webservices/TESTWSImpl?wsdl
在
引用我猜我將學習如何使用這個生成的url路徑('webservices'),直到我更瞭解如何配置它。
UPDATE(2014-JAN-20): 我完成一種方法與Enpoint.publish
並添加它作爲一個答案。
我試圖尋找的WSDL文件,並沒有發現什麼。我搜索了一些表示WEB-INF /模式的引用,但該目錄甚至沒有創建。 –