相关疑难解决方法(0)

用于构建JSON REST API的Jersey/Jackson的更好替代方案?

我需要构建一个JSON-REST API的服务器端,我一直在和Jersey一起玩(使用它的JSON-POJO映射功能).

问题是,即使测试最简单的用例,也需要在SO上提出几个问题,并且需要进行相当多的搜索.简而言之,它不是一个非常流畅的API,比如JSoup,它似乎是一个工具,它来自一切都是XML的时代,然后它被改装为JSON.

例如,您可以在需要使用@XmlRootElement注释POJO对象的要求中看到这一点,即使我正在做的任何事情都涉及XML.

我想知道是否还有其他库,也许是更新的,我应该考虑这个可能比泽西更容易使用?

java rest json jersey jackson

22
推荐指数
2
解决办法
3万
查看次数

Jersey 2.0"入门"指南,找不到mainClass

嗨,我正在尝试按照Jersey 2.0 的入门指南.

我按原样执行了步骤1.1和1.2.没问题.

对于步骤1.3,我有一个问题,因为maven找不到javax-annotation 1.2但是我按照另一个Stackoverflow用户的建议解决了它,并在我的pom中添加了一个存储库.

所以mvn clean test通过没有问题,但是当我试图跑,mvn clean exec:java我回来

[WARNING] java.lang.ClassNotFoundException: com.example.Main
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:285)
at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)

pom.xml是由以下命令创建的:

mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.0
Run Code Online (Sandbox Code Playgroud)

我唯一补充的内容如下:

<repositories>
  <repository>
    <id>java.net.repo</id>
    <url>https://maven.java.net/content/groups/promoted/</url>
    <layout>default</layout>
  </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)

如果它是感兴趣的,这是输出 mvn -version

 Apache Maven 3.0.4 (r1232337; 2012-01-17 10:44:56+0200)
 Maven home: /usr/share/maven
 Java version: 1.7.0_21, vendor: Oracle Corporation …
Run Code Online (Sandbox Code Playgroud)

java jersey maven jersey-2.0

10
推荐指数
1
解决办法
5287
查看次数

从jersey 1.x迁移到jersey 2.x时的NoClassDefFoundError ProcessingException(2.8)

我开发了一个网络服务应用程序,它与jersey 1.x(1.16)一起工作我最近尝试迁移到最新的稳定版球衣版本2.8

我删除了v1.16的所有jersey jar文件,然后从链接下载了v2.8的jersey jars:https: //jersey.java.net/download.html

根据文档我知道,我应该有最新的servlet jar,servlet jar 2.5或者以上,所以我下载了servlet-api-2.5.jar并将其添加到/ libs文件夹中.

我下载了javax.ws.rs-api-2.0-m09.jar并将其添加到/ libs我还添加了最新的jettison v 1.3.3到/ libs

但是我在tomcat7上运行时遇到异常,如下所示从jersey 1.x迁移到2.x的确切步骤是什么?这里缺少什么?

我的Web.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>com.tempWSJersey2.WebServices</display-name>
  <servlet>
    <servlet-name>Temp 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>com.temp</param-value>
     </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Temp REST Service</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)

例外是 -

SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/tempWSJersey2]]
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
    at java.util.concurrent.FutureTask.get(FutureTask.java:111)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) …
Run Code Online (Sandbox Code Playgroud)

java tomcat jersey jersey-2.0

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

java ×3

jersey ×3

jersey-2.0 ×2

jackson ×1

json ×1

maven ×1

rest ×1

tomcat ×1