我正在尝试在带有泽西岛 6.2 的 JBoss EAP 6.19 中部署一个简单的 restful 服务。
应用程序类的子类:
package com.jersey.mywebapp;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;
@ApplicationPath("resources")
public class MyApp extends Application {
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(MyResource.class);
return s;
}
}
RS实现类:
package com.jersey.mywebapp;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("myresource")
public class MyResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
return "Got it!";
}
}
我的部署描述符:
..
<servlet>
<display-name>My JAX-RS Servlet</display-name>
<servlet-name>com.jersey.mywebapp.MyApp</servlet-name>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.jersey.mywebapp.MyApp</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>com.jersey.mywebapp.MyApp</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
...
访问资源时出现以下错误(localhost:8080/{context}/resources/myresource)
21:51:29,437 INFO [org.apache.catalina.core.ContainerBase.[jboss.web]. [default-host].[/rpa]] (http-/127.0.0.1:8080-1) JBWEB000264: Marking servlet com.jersey.mywebapp.MyApp as unavailable
21:51:29,446 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/rpa].[com.jersey.mywebapp.MyApp]] (http-/127.0.0.1:8080-1) JBWEB000235: Allocate exception for servlet com.
jersey.mywebapp.MyApp: javax.servlet.ServletException: JBWEB000260: No servlet class has been specified for servlet com.jersey.mywebapp.MyApp
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1147) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:950) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:151) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at java.lang.Thread.run(Thread.java:780) [vm.jar:1.7.0]
根据我的理解,JBoss EAP 6.2支持Servlet 3.0,并且符合Jersey文档(第4章)。应用程序部署和运行时环境),根据servlet可插拔机制省略servlet类是有效的。
请告知如何解决这个问题?
注意:为了避免/禁止RESTEasy扫描JAX-RS资源,我已经从standalone.xml中注释了-subsystem xmlns=“urn:jboss:domain:jaxrs:1.0”
除非您真的需要使用泽西而不是提供的JAX-RS实现,否则您可能需要尝试以下操作:-恢复RESTEasy的子系统配置-删除应用程序中的web. xml servlet和servlet映射声明。
因为您提供了带有< code>@ApplicationPath注释的< code > javax . ws . RS . core . application 的子类,所以不需要web.xml配置(根据JAX-RS 1.1规范,我相信您在上面提到过。)
HTH
主要内容:重定向的工作流程,转发和重定向的区别,response.sendRedirect(),示例重定向属于客户端行为。服务器在收到客户端请求后,会通知客户端浏览器重新向另外一个 URL 发送请求,这称为请求重定向。它本质上是两次 HTTP 请求,对应两个 request 对象和两个 response 对象。 重定向的工作流程 重定向的工作流程如下: 用户在浏览器中输入 URL,请求访问服务器端的 Web 资源。 服务器端的 Web 资源返回一个状态码为 302 的响应信息,该响应的含义为:通
如果I并通过JBOss web接口进行部署,servlet将进行部署。 使用eclipse,JPA类已经部署,持久性的东西也已经设置,但是我没有从servlet中得到任何东西。 除了persistence.XML之外,我没有任何XML文件,只有如下所示的带注释的servlet:
消息 说明服务器遇到内部错误(),无法运行 根本原因 根本原因 当我将浏览器用作http://localhost:8080/sample/rest/app/test将返回一个json数据类型。。 产品类 StringService类 StringServiceApplication 我的网络。xml 我的jboss网站。xml 构建路径上的我的库——javassist-3.12.1。GA-json
如果图像无法加载,下面是代码
提前谢了。
我使用jhipster版本7.6.0,这是我的CacheConfiguration类。 以下是redisson的依赖关系: 这是我的应用程序dev.yml: 一切都是由jHipster生成的,在安装redis 3.2.100版后,我遇到了以下异常: 顺便说一下,项目正在成功编译。 提前感谢您的帮助!
问题内容: 由于Servlet 3.0 支持异步处理。使用始终异步处理会更好吗?或者在什么情况下同步处理更好? 问题答案: 异步Servlet带来的最大好处是HTTP push ,在该服务器中,服务器可以在选择时向客户端发送信息,而不是在客户端请求时将信息发送回客户端。在异步Servlet之前,这将需要长时间运行的HTTP连接,每个HTTP连接都会束缚服务器线程,这是非常低效的。这个新模型使服务器
当文档移动到新的位置,我们需要向客户端发送这个新位置时,我们需要用到网页重定向。当然,也可能是为了负载均衡,或者只是为了简单的随机,这些情况都有可能用到网页重定向。 重定向请求到另一个网页的最简单的方式是使用 response 对象的 sendRedirect() 方法。下面是该方法的定义: public void HttpServletResponse.sendRedirect(String