我正在使用ApacheTomcat7.0和eclipse创建一个jersey应用程序。我在eclipse中创建了一个动态web项目,并将资源文件定义为:-
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
// Plain old Java Object it does not extend as class or implements
// an interface
// The class registers its methods for the HTTP GET request using the @GET annotation.
// Using the @Produces annotation, it defines that it can deliver several MIME types,
// text, XML and HTML.
// The browser requests per default the HTML MIME type.
//Sets the path to base URL + /hello
@Path("/hello")
public class Hello {
// This method is called if TEXT_PLAIN is request
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayPlainTextHello() {
return "Hello Jersey";
}
// This method is called if XML is request
@GET
@Produces(MediaType.TEXT_XML)
public String sayXMLHello() {
return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
}
// This method is called if HTML is request
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHtmlHello() {
return "<html> " + "<title>" + "Hello Jersey" + "</title>"
+ "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> ";
}
}
网状物xml文件也创建如下-
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>de.vogella.jersey.first</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>de.vogella.jersey.first</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
以下jar文件已添加到web inf中的lib文件夹中,并且在部署war文件后,也将以目录结构出现在web应用程序中。
一旦启动tomcat并部署war文件,就会出现以下错误:
org.apache.catalina.生命周期异常:启动组件失败[标准引擎[Catalina]。localhost。de.vogella.jersey.first]在org.apache.catalina.util.ase.start(ase.java:154)在org.apache.catalina.core.ContainerBase.add儿童内部(ContainerBase.java:901)在org.apache.catalina.core.ContainerBase.add儿童(ContainerBase.java:877)在org.apache.catalina.core.标准ost.add儿童(标准ost.java:634)在org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1074)在org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig. java: 1858)执行器$RunnableAdapter. call(Executors. java: 471)在java. util. con当前。未来任务$Sync. innerRun(FutureTaskc. java: 334)在java. util. con当前。FutureWork. run(FutureTasks. java: 166)at java. util. con当前。ThreadPoolExecutor. runWorker(ThreadPoolExecutor. java: 1145)在java. util. con当前。在java. lang上运行(ThreadPoolExecator. java: 615)。线程. run(Thread. java: 724)引起:java. lang.NoClassDefFoundError:在org. glassfish. jersey. interals上的jersey/re包/com/google/通用/base/Function。服务查找。java: 165)在org. glassish. jersey. servlet. interal。ServletContainerProviderFactory. getAllServletContainerProviders(ServletContainerProviderFactory. java: 66)在org. glassish. jersey. servlet. init。java: 132)在org. apache. catalina. core.在org. apache. catalina. utila上的标准内容。11更多原因:java. lang.ClassNotFoundExcema: jersey. rePackage. com. google. co. base.函数在org. apache. catalina. loader。在org. apache. catalina. loadClass(WebappClassLoader. java: 1702)。WebappClassLoader. loadClass(WebappClassLoader. java: 1547)...16 more
我已将以下jar添加到lib文件夹:
**/de.vogella.jersey.first/WebContent/WEB-INF/lib/guava-16.0.1.jar
/de.vogella.jersey.first/WebContent/WEB-INF/lib/jersey-client.jar
/de.vogella.jersey.first/WebContent/WEB-INF/lib/jersey-common.jar
/de.vogella.jersey.first/WebContent/WEB-INF/lib/jersey-container-servlet-core.jar
/de.vogella.jersey.first/WebContent/WEB-INF/lib/jersey-container-servlet.jar
/de.vogella.jersey.first/WebContent/WEB-INF/lib/jersey-server.jar**
但是这个错误还是会发生,请告诉我哪里出了问题。
能够为泽西2.8获得基本的REST网络服务。一定要让我知道是否有更好的方法来做这件事。
波姆。xml:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.8</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.8</version>
</dependency>
</dependencies>
网状物xml:
<servlet>
<servlet-name>jersey-servlet</servlet-name>
<servlet-class>
org.glassfish.jersey.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>jersey.config.servlet.provider.webapp</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
招呼爪哇:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("greeting")
public class Greeting {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String greeting(){
return "Welcome!!";
}
}
我相信你错过了谷歌番石榴依赖罐失踪。尝试下载并将它们添加到类路径中。
最后解决了。请检查下面的jar文件。使用这么多jar文件来实现REST服务是令人厌恶的。可能是Rest或轻松Rest比球衣更好。
hk2-api-2.2.0.jar
hk2-locator-2.2.0.jar
hk2-utils-2.2.0.jar
javassist-3.18.1-GA.jar
javax.annotation-api-1.2.jar
javax.inject-2.2.0.jar
javax.ws.rs-api-2.0.jar
jersey-client.jar
jersey-common.jar
jersey-container-servlet.jar
jersey-container-servlet-core.jar
jersey-guava-2.8.jar
jersey-server.jar,
validation-api-1.1.0.Final.jar
希望有人会觉得这有用。以上是已知的使用jersey 2.8版的情况
当我尝试在Linux服务器上的Tomcat上使用(“sudo服务tomcat7启动”)实现下面的方法时,除了这个方法之外,其他所有方法都可以正常工作。 奇怪的是,当我在Eclipse中“在服务器上运行”时,这个方法工作得很好。 以下是我收到的错误消息: HTTP状态500- 类型异常报告 消息 说明服务器遇到内部错误(),无法满足此请求。 例外 javax。servlet。ServletExcep
无法在weblogic服务器上部署jersey REST,是否存在特定于weblogic的REST服务配置? 完全堆栈跟踪- 2018年4月25日下午7:01:53。太阳运动衫服务器impl。应用WebApplicationImpl启动信息:启动泽西岛应用程序,版本“泽西岛:1.2 05/07/2010 02:11 PM”2018年4月25日7:01:53 PM com。太阳运动衫服务器impl。
Update:原来您不需要任何技巧来实现这一点,只需相应地使用或即可。或者,您可以在中配置自己的别名,如下所述。
我有一个正在运行的Web服务,它将被客户端移动应用程序使用。其中一项服务是返回一个JSON对象数组(超过1000个对象),每个对象都有相当大的大小。服务器端的整个计算需要一些时间,这不是一个好的用户体验。所以我希望以块的形式发送数据,例如每个块10个对象,这样这些数据就会占据屏幕,当他滚动时,或者当数据准备好时,屏幕上充满了从最新收到的块中新获取的数据。 我使用Jersey框架并发送一个Java<
我正在创建一个API上传文件使用泽西。 } } 当我执行curl-v-X POST时——form file=@rt.txt url 我哪里做错了?
尽管 Go 编译器产生的是本地可执行代码,这些代码仍旧运行在 Go 的 runtime(这部分的代码可以在 runtime 包中找到)当中。这个 runtime 类似 Java 和 .NET 语言所用到的虚拟机,它负责管理包括内存分配、垃圾回收(第 10.8 节)、栈处理、goroutine、channel、切片(slice)、map 和反射(reflection)等等。 runtime 主要由