您不需要第三方库来使用jax-ws注释。J2SE 附带jax-ws,因此您仍然可以使用所有注释。您可以使用以下解决方案实现轻量级结果,但对于任何优化/多线程,它都由您自己实现:
设计一个 SEI,服务端点接口,它基本上是一个带有 web 服务注释的 java 接口。这不是强制性的,它只是基本 OOP 的一个良好设计点。
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebService
@SOAPBinding(style = Style.RPC) //this annotation stipulates the style of your ws, document or rpc based. rpc is more straightforward and simpler. And old.
public interface MyService{
@WebMethod String getString();
}
在称为 SIB 服务实现 bean 的 java 类中实现 SEI。
@WebService(endpointInterface = "com.yours.wsinterface") //this binds the SEI to the SIB
public class MyServiceImpl implements MyService {
public String getResult() { return "result"; }
}
使用Endpoint
导入 javax.xml.ws.Endpoint 公开服务;
public class MyServiceEndpoint{
public static void main(String[] params){
Endpoint endPoint = EndPoint.create(new MyServiceImpl());
endPoint.publish("http://localhost:9001/myService"); //supply your desired url to the publish method to actually expose the service.
}
}
就像我说的,上面的片段非常基础,在生产中表现不佳。您需要为请求制定一个线程模型。端点 API 接受一个Executor实例来支持并发请求。线程不是我真正的事,所以我无法给你指点。