我正在使用Glassfish编写(非常)小型SOAP Web服务。我的代码如下:
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
端点,但不是我创建的端点。在浏览器中访问该URL(http://sutureself.com:9292/ws/milli)也会返回“无法连接”错误。
如果我选择“启动”,那么我会看到两个链接(Glassfish中每个http端口一个),但这些链接返回404.
如果我只是尝试点击“上下文根”路径,那也不起作用。我需要一个入口点,我找不到它。
我错过了什么?
请注意!上述代码中的所有sutureself.com
实际上都是localhost
,因此您不喜欢使用localhost发布网址。
我们很乐意添加有关如何配置设置的更多信息。
答案 0 :(得分:2)
我之前在SOAP WS中也做了一个例子,但我有一个疑问,你为什么要使用 Glassfish服务器,因为你正在使用main方法部署你的WS,它将地址绑定到你的服务。我认为不需要服务器。
使用eclipse按照以下步骤测试WS -
注意:请关闭Glassfish服务器
1 - 创建一个新的java项目(不是动态Web项目)
2 - 在 hello 包中创建 HelloWorld 类
package hello;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class HelloWorld{
@WebMethod
public String method(String name)
{
return "hello " +name;
}
}
您不需要明确地创建界面。
3:现在创建一个 Publisher 类,在 hello 包中发布WebService
package hello;
import javax.xml.ws.Endpoint;
public class Publisher {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Endpoint.publish("http://LH.com:9292/ws/milli", new HelloWorld());
}
}
现在,您已使用http://LH.com:9292/ws/milli绑定了WS。请按http://LH.com:9292/ws/milli?wsdl或http://LH.com:9292/ws/milli?test
进行检查