我在寫一個使用Glassfish的(非常)小的SOAP Web服務。我的代碼如下:JAX-WS端點不工作
Milliseconds.java
package com.suture.self.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
@WebService
@SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL)
public interface Milliseconds {
@WebMethod
String currentMilliseconds();
}
MillisecondsImpl.java
package com.suture.self.ws;
import javax.jws.WebService;
@WebService(endpointInterface = "com.suture.self.ws.Milliseconds")
public class MillisecondsImpl implements Milliseconds {
@Override
public String currentMilliseconds() {
return String.valueOf(System.currentTimeMillis());
}
}
MillisecondsEndpoint.java
package com.suture.self.ws;
import javax.xml.ws.Endpoint;
public class MillisecondsEndpoint {
public static void main(String[] args) {
Endpoint.publish("http://sutureself.com:9292/ws/milli", new MillisecondsImpl());
}
}
當我在Glassfish服務器上(通過Eclipse)運行此操作時,管理控制檯會顯示通常的工作?wsdl
和?Tester
端點,但不是我創建的端點。在瀏覽器中點擊該網址(http://sutureself.com:9292/ws/milli)也會返回「無法連接」錯誤。
如果我選擇「啓動」,然後我出兩個鏈接(一個用於在每個Glassfish的HTTP端口),但這些返回一個404
如果我只是嘗試打出了「上下文根」的路徑,那也不起作用。我需要一個入口點,但我無法找到它。
我錯過了什麼?
請注意!上述代碼中的所有sutureself.com
實際上都是localhost
,所以SO不喜歡你用localhost顯式地發佈URL。
有關如何配置我的設置的更多信息將愉快地添加。
試圖改變它到9091(這是絕對免費的),仍然得到同樣的事情,「無法連接」。 – MeanwhileInHell
@Suture自己檢查編輯答案。希望這會有所幫助。 lh.com = localhost –
非常感謝您的更新。當你說「不需要服務器」時,我只是創建一個JAR(或WAR?)這個包並運行它,還是需要將它部署到Tomcat或Glassfish中?對不起,編寫Web服務的新手。 – MeanwhileInHell