我正在尝试在 Wildfly 服务器中部署 JAX-RS 注释的 war 。
下面是web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org /xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
我的服务类别:
@Path("/gms")
public class GmsService {
@Path("/saveMS")
@Consumes(MediaType.APPLICATION_JSON)
public void saveMeasurements(MainBean mb){
System.out.println(mb.getStationID());
System.out.println(mb.getMeasurements().get(0));
}
}
问题是由于以下错误而无法部署:
JBAS017354:找不到监听协议(protocol) javax.ws.rs.core.Application 的端口号
有什么想法吗?
最佳答案
我刚刚遇到了这个问题,这是我解决它的方法:
可以看到异常代码17354是“servletClassNotDefined”,所以只需要定义一个即可。
在 web.xml 中,按如下方式定义 servlet 类:
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
它对我来说就像一种魅力。
希望对您有帮助!
瓦尔
关于java - JBAS017354 : Could not find the port number listening for protocol javax. ws.rs.core.Application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23759810/