Để có hỗ trợ JAX-WS trong Tomcat bạn phải cấu hình:
- WEB-INF/CN-jaxws.xml
- WSServletContextListener
- WSServlet
Thật không may là khó bỏ qua tệp WEB-INF/sun-jaxws.xml nhưng có cách dễ dàng hơn để bỏ qua cấu hình web.xml vì API Servlet 3.0.
Bạn có thể làm một cái gì đó như thế này:
@WebServlet(name = "ServiceServlet" , urlPatterns = "/service", loadOnStartup = 1)
public class Servlet extends WSServlet {
}
và
@WebListener
public class Listener implements ServletContextAttributeListener, ServletContextListener {
private final WSServletContextListener listener;
public Listener() {
this.listener = new WSServletContextListener();
}
@Override
public void attributeAdded(ServletContextAttributeEvent event) {
listener.attributeAdded(event);
}
@Override
public void attributeRemoved(ServletContextAttributeEvent event) {
listener.attributeRemoved(event);
}
@Override
public void attributeReplaced(ServletContextAttributeEvent event) {
listener.attributeReplaced(event);
}
@Override
public void contextInitialized(ServletContextEvent sce) {
listener.contextInitialized(sce);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
listener.contextDestroyed(sce);
}
}
Tôi đã thử nghiệm nó trên Tomcat-8.5.23 phiên bản và nó hoạt động. Nhưng hãy nhớ rằng bạn vẫn phải có tệp WEB-INF/sun-jaxws.xml.
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
<endpoint name="SampleService"
implementation="com.ws.ServiceImpl"
url-pattern="/service" />
</endpoints>
Nguồn
2017-11-27 09:03:25
+1, không biết vị trí của 'sun-jaxws.xml' được mã hóa cứng :) Điều gì về mẫu url mặc định sẽ tạo tùy chọn' sun-jaxws.xml' (xem blog tôi đã trích dẫn trong câu hỏi của tôi), bạn có biết gì về nó không? –
@MiljenMikic đọc bài đăng đó một cách cẩn thận, tất cả dường như có rất nhiều suy nghĩ mơ hồ và không có nhiều tham chiếu: Liên kết trong bài đăng blog của anh ấy đã chết. Tôi vẫn quản lý để theo dõi các nguồn ông đã đề cập đến [ở đây] (http://jarvana.com/jarvana/inspect/com/sun/xml/ws/jaxws-ri/2.2.2-promoted-b03/jaxws- ri-2.2.2-promoted-b03.zip?folder=jaxws-ri/samples/optional_webxml/) và [readme.txt] (http://jarvana.com/jarvana/view/com/sun/xml/ws /jaxws-ri/2.2.2-promoted-b03/jaxws-ri-2.2.2-promoted-b03.zip!/jaxws-ri/samples/optional_webxml/Readme.txt) vẫn cho biết sun-jaxws.xml là cần thiết – kolossus