剛開始使用JAX-WS。我在一個WAR文件,如下所示創建2個測試Web服務....sun-jaxws.xml中的JAX-WS多個端點
package com.djs;
import javax.jws.WebService;
@WebService()
public class AddTwoInts {
public int performAdd(int firstNum, int secondNum) {
return firstNum + secondNum;
}
}
而且.....
package com.djs;
import javax.jws.WebService;
@WebService()
public class SayHello {
public String sayHello(String inwards) {
return "Hello " + inwards;
}
}
這是我的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<listener>
<listener-class>
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
</listener-class>
</listener>
<servlet>
<servlet-name>jaxws</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jaxws</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
這是太陽-jaxws.xml
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>
<endpoint name='performAdd' implementation='com.djs.AddTwoInts' url-pattern='/AddTwoInts' />
<endpoint name='sayHello' implementation='com.djs.SayHello' url-pattern='/SayHello' />
</endpoints>
我部署到Tomcat 7並使用http://localhost:8080/MyApp/AddTwoInts?wsdl
以獲取AddTwoInts OK了WSDL ....但是,當我執行http://localhost:8080/MyApp/SayHello?wsdl
我得到一個404頁未找到錯誤....
任何意見讚賞。
修復它,Thankyou .......出於興趣,爲什麼我不能指向兩個端點在同一個servlet?我認爲JAXWS servlet使用sun-jaxws中的端點映射來確定要調用哪個端點類。因此,如果我將所有URL指向一個servlet,它應該能夠找出該做什麼...... – Dave 2011-06-02 11:03:01
我想可以將多個端點映射到一個servlet,但是您的「sun-jaxws」應該包含所有enpoints單獨定義。 嘗試此: '** web.xml中:** SomeName servlet的名稱> com.sun.xml.ws.transport.http.servlet。 WSServlet servlet的類> SomeName servlet的名稱> /* URL模式> servlet的映射>' ** sun-jaxws.xml:** 沒有變化.' –
Vivek
2011-06-03 14:13:42