标签: jax-rs

resteasy-cdi - 获取"重复上下文初始化参数resteasy.injector.factory"错误

我需要在我正在使用RESTEASY的休息应用程序上使用CDI功能.所以我按照手册的说明在我的应用程序上设置了resteasy-cdi模块,该模块在JBoss AS7上运行.

但是当我启动服务器时,我收到以下错误:

13:48:08,631 ERROR [org.apache.catalina.core.StandardContext](MSC服务线程1-4)由于先前的错误,上下文[/ MainService]启动失败:java.lang.IllegalArgumentException:重复的上下文初始化参数resteasy.injector .厂

我的web.xml如下:

<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"
    version="2.5">
    <listener>
        <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
    </listener>
    <servlet>
        <servlet-name>Resteasy</servlet-name>
        <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
    </servlet>
    <context-param>
        <param-name>resteasy.injector.factory</param-name>
        <param-value>org.jboss.resteasy.cdi.CdiInjectorFactory</param-value>
    </context-param>
    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>
    <servlet-mapping>
        <servlet-name>Resteasy</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种参数组合,并尝试在此线程中配置它,但没有成功.

在web.xml上指定javax.ws.rs.core.Application并禁用resteasy.scan也无法解决问题.

我的pom.xml包含以下内容:

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-cdi</artifactId>
    <version>2.2.1.GA</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用和不使用神器resteasy-jarxs进行测试,以及像本文一样的依赖声明.

我真的迷路了.你有什么想法?我现在需要CDI或EJB来通过注入使用JPA的EntityManager.我知道没有它我就可以使用,但我更愿意这样,我可以探索JTA的集成和CDI未来的功能.

谢谢.

jboss jax-rs resteasy cdi

2
推荐指数
1
解决办法
5537
查看次数

如何使用jax-rs的属性文件?

我刚刚开始使用在Tomcat上运行的jax-rs来设置web服务.有没有办法将属性文件与我的java项目(在eclipse中)捆绑在一起,以便我可以在运行时从中读取属性?如果可能的话,最好放置它的位置(通过网址无法看到),Web内容,WEB-INF等?

谢谢.

java tomcat properties jax-rs

2
推荐指数
1
解决办法
9569
查看次数

我在哪里可以找到Java EE 6 XML库

我正在学习Java EE 6和Jax-RS(还没有开始关于Jax-RS的任何事情)来为我的工作构建一个xml api.我有我的java控制器设置,现在我正在寻找使用我的模型来生成XML输出.我似乎无法通过搜索Google找到任何XML库.有人能指点我正确的方向吗?

java jax-rs java-ee java-ee-6

2
推荐指数
1
解决办法
361
查看次数

HTTP状态405 - 使用WebServices调用DELETE方法时出现方法不允许错误

我试图使用以下@DELETE方法从"Contacts"表中删除"Contact"(使用Jersey Framework(JAX-RS实现))

@DELETE
@Path("/delete/{contact}")
public String deleteContact(@PathParam("contact") String name) throws ClassNotFoundException, SQLException {

    String response = DAOaccess.deleteContact(name);
    return response; 
}
Run Code Online (Sandbox Code Playgroud)

以下url用于从浏览器调用webservice:

/联系人/删除/ CONTACTNAME

但是这样做会引发HTTP状态405 - 不允许的方法.

可能是什么原因?我该如何克服这个问题?

java rest web-services jax-rs jersey

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

使用单泽西REST类用于多个PATH

我已经开始使用JAX-RS开发REST服务.使用Jersey非常简单,但是我使用Spring MVC和Jersey REST类遇到的一个区别是,Spring支持必须忽略Root Path元素并在Method Level上有单独的路径映射.因此,如果有上传/下载功能,我可能不希望有一个上传一个类和一个下载,泽西岛要求我现在做,因为在类级别上只有1个根路径,如下所示:

@Path("/uploads")
public class FileDownloadController {
......
}
Run Code Online (Sandbox Code Playgroud)

如果我忽略根级别@Path即在类级别,则启动服务器时Jersey不会识别我的类.这是我想要实现的目标:

public class FileProcessController {

   @Path("/uploads")
   public Response uploadFile(...) {
       ......
   }

   @Path("/downloads")
   public Response downloadFile(...) {
      ......
   }
}
Run Code Online (Sandbox Code Playgroud)

任何线索将不胜感激.

谢谢

rest jax-rs jersey jersey-1.0

2
推荐指数
1
解决办法
4939
查看次数

Jersey/JAX-RS中的嵌套内部类

我有这个完美的资源:

@Path("/adoptable")
public class AdoptableAnimalsResource {

  @GET
  @Produces(MediaType.TEXT_PLAIN)
  public String get() 
  {
    return "dogs";
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,我怎样才能将这个类变成嵌套的内部类? 例如,

public class Grouper
{
  @Path("/adoptable")
  public class AdoptableAnimalsResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String get() 
    {
      return "dogs";
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试它时,我得到404 Not Found错误,表明Jersey不会将内部类视为资源.

java rest web-services jax-rs jersey

2
推荐指数
1
解决办法
1294
查看次数

导入com.sun.jersey.api.client.ClientResponse的问题;

我有一个基本的java项目,其中我在我的java构建中使用外部导入了jersey-client-1.19.jar(使用eclipse).我正在尝试编写一个基本的泽西客户端来对Web服务进行RESTful调用.一旦我尝试导入ClientResponse类,eclipse就会抱怨 -

类型javax.ws.rs.ext.runtimedelegate $ headerdelegate无法解析.它是从所需的.class文件间接引用的.

Eclipse自动更正将我带到我的构建路径.但我没有运气解决这个问题.谷歌搜索但没有找到任何东西.

我错过了一些基本的东西.任何帮助表示赞赏.

java jax-rs jersey

2
推荐指数
1
解决办法
3978
查看次数

swagger-api和JAX-RS有什么区别?

swagger-api和之间有什么区别JAX-RS

swagger-api唯一的文档吗?(例如@ApiOperation

jax-rs swagger

2
推荐指数
1
解决办法
1734
查看次数

使用JAX-RS的Guice

我使用Guice作为我的依赖注入框架.我想要一些我可以添加的东西,这将使创建REST服务更容易.

我已经看过guice-servlet了,它可以很好地将路径引导到HTTP servlet,但这就是它所做的一切,我希望JAX-RS之类的注释语法可以正常工作,但事实并非如此.

实际上没有使用JAX-RS我已经google了一下,看来Jersey是这个的参考实现,但看起来它使用自己的依赖注入框架并且与Guice不兼容.此外,它有5 + MB的依赖性,这似乎很多我追求的.

Guice是否以这样的方式设计,它不适合JAX-RS,如果是这样,我还应该做些什么呢?

rest jax-rs guice

2
推荐指数
1
解决办法
2921
查看次数

JAX-RS不适用于Spring Boot 1.4.1

我正在尝试使用Spring Boot 1.4.1.RELEASE开发一个简单的基于JAX-RS的Web服务.但得到这个例外 -

java.lang.IllegalStateException: No generator was provided and there is no default generator registered
at org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.internalCreate(ServiceLocatorFactoryImpl.java:308) ~[hk2-api-2.5.0-b05.jar:na]
at org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.create(ServiceLocatorFactoryImpl.java:268) ~[hk2-api-2.5.0-b05.jar:na]
at org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:138) ~[jersey-common-2.23.2.jar:na]
at org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:123) ~[jersey-common-2.23.2.jar:na]
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:330) ~[jersey-server-2.23.2.jar:na]
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392) ~[jersey-container-servlet-core-2.23.2.jar:na]
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177) ~[jersey-container-servlet-core-2.23.2.jar:na]
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369) ~[jersey-container-servlet-core-2.23.2.jar:na]
Run Code Online (Sandbox Code Playgroud)

这是我的计划详情 -

POM.xml中包含的依赖项 -

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

这里是JerseyConfig文件 -

package com.test.main;
import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;
import com.test.resources.TutorialResource;

@Component
public class JerseyConfig extends ResourceConfig{
    public JerseyConfig() {
        register(TutorialResource.class);
        packages("com.test.resources");
    }
}
Run Code Online (Sandbox Code Playgroud)

java jax-rs maven spring-boot

2
推荐指数
2
解决办法
7775
查看次数