标签: jax-rs

如何为Jersey Jax-RS maven项目添加JSR-311依赖项

以下问题讨论了Jersey与JAX-RS规范之间的依赖关系理论:

我假设我可以添加依赖项:

  <!--  javax.ws.rs.core e.g. Request -->
  <dependency>
     <groupId>javax.ws.rs</groupId>
     <artifactId>jsr311-api</artifactId>
     <version>1.0</version>
  </dependency>
Run Code Online (Sandbox Code Playgroud)

到我的API定义maven项目并使用Jersey/Grizzly来实现.

    <jersey.version>1.15</jersey.version>
    <grizzly.version>2.2.20</grizzly.version>       
Run Code Online (Sandbox Code Playgroud)

与此假设相反,我收到以下错误消息:

15.02.2013 08:41:25 org.glassfish.grizzly.http.server.HttpServerFilter handleRead
WARNUNG: Unexpected error
java.lang.IncompatibleClassChangeError: Class javax.ws.rs.core.Response$Status does not implement the requested interface javax.ws.rs.core.Response$StatusType
    at com.sun.jersey.spi.container.ContainerResponse.getStatus(ContainerResponse.java:571)
Run Code Online (Sandbox Code Playgroud)

什么是应该与Jersey 1.15一起使用的正确的JAX-RS API依赖?

我希望以一种可以由任何其他符合JAX-RS的库替换实现的方式来实现.

jax-rs jersey maven

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

如何使用Jersey API或任何其他jax-rs API在jax-rs中使用@HEAD?

如何使用Jersey API或任何其他jax-rs API在jax-rs中使用@HEAD?请给我样品.

rest jax-rs jersey

4
推荐指数
1
解决办法
5726
查看次数

InjectionUtils - 参数类没有构造函数

我正在尝试使用cxf实现发送一个post请求.但是我InjectionUtils - Parameter Class SizeQuantityBean has no constructor with single String parameter, static valueOf(String) or fromString(String) methods在绑定一个类时遇到错误.
我发送请求的代码:

sellerService.register(sellerBean);
Run Code Online (Sandbox Code Playgroud)

执行:

@Path(BASE_PATH + "/register")
@POST
@Produces({MediaType.APPLICATION_JSON})
BaseBean register(@QueryParam("") SellerBean sellerBean){
   ...
   ... 
}
Run Code Online (Sandbox Code Playgroud)

SellerBeanclass有List SizeQuantityBean.如何重新解决这场冲突?

data-binding cxf jax-rs

4
推荐指数
1
解决办法
1354
查看次数

@Inject CDI无法与JAX-RS一起使用

我正在尝试使用JAX-RS(Jersey)创建一个简单的REST服务,而不使用Spring。我想具有以下典型结构:资源,使用服务(具有方法的典型接口findById,findAll ...),并将该服务注入资源中。

似乎CDI会自动扫描bean并将其注入(beans.xml在项目中为空),但是...对我而言不起作用。

这是我的Resource类:

@Path("users")
@ManagedBean
public class UserController {

    @Inject
    private UserService userService;

    @GET()
    @Path("/{id}")
    @Produces(MediaType.APPLICATION_JSON)
    public User getUserById(@PathParam("id") Long id) {

        return userService.findById(id);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的Service及其impl类(它是一个模拟...):

public interface UserService {

    User findById(Long id);

    List<User> findAll();

    User save(User user);

    User update(User user);

    void delete(Long id);
}

public class UserServiceMock implements UserService {

    // omitted constants

    @Override
    public User findById(Long id) {
        return new User()
                .setId(id)
                .setName(NAME_GANDALF)
                .setPhone(PHONE_666554433)
                .setType(TYPE_1)
                .setBirthDate(LocalDate.parse(STRING_DATE_19110102));
    }

    @Override
    public List<User> findAll() { …
Run Code Online (Sandbox Code Playgroud)

java rest jax-rs jersey cdi

4
推荐指数
1
解决办法
1126
查看次数

在weblogic上升级jax-rs共享库

通常情况下的WebLogic 12c的犯规支持JAX-RS 2.0,但通过JAX-RS的帮助下共享库附带的WebLogic本身就可以JAX-RS版本升级为1.1至2.0.问题是库实现是jersey 2.5,它不能满足我的需求.我找到了一个关于在weblogic上升级球衣版本的链接,这看起来很复杂.用我的球衣版2.13替换球衣罐2.5是否足够?我还需要做其他事吗?

jax-rs jersey weblogic12c

4
推荐指数
1
解决办法
2660
查看次数

为JAX-RS 2.0客户端API配置代理

我有一个在Java EE 7应用程序服务器(WildFly)上运行的应用程序,它使用REST资源查询另一个服务.

在以前的应用程序中,我使用了Jersey 1.x客户端API.通过Web代理授予对REST服务的访问权限.

在Jersey中,我创建了Client这样的实例:

public Client create() {

    Client client;
    if ( proxyConfiguration != null && proxyConfiguration.getHost() != null && !proxyConfiguration.getHost().trim().isEmpty() ) {
        HttpURLConnectionFactory urlConnectionFactory = new ProxyUrlConnectionFactory( proxyConfiguration );
        client = new Client( new URLConnectionClientHandler( urlConnectionFactory ), clientConfig );
    } else {
        client = Client.create( clientConfig );
    }

    return client;
}
Run Code Online (Sandbox Code Playgroud)

在Java EE 7应用程序服务器上运行我想使用应用程序服务器提供的JAX-RS 2.0客户端API.

现在我很难找到有关如何以独立于平台的方式配置JAX-RS 2.0客户端的信息.设置http.proxyHosthttp.proxyPort系统属性在WildFly中没有任何效果(我宁愿不在全局配置它).

有谁知道如何解决这个问题?

jax-rs java-ee-7

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

拦截JAX-RS Web服务请求以添加JSON字段

我有一个JAX-RS Web服务,它返回一个获取JSON请求参数(映射到Parameter对象),如下所示(它在WebLogic 12.2.1中运行).是否可以编写拦截器或过滤器,这样当调用Web服务时,它将在JSON请求消息中添加一个额外的字段,以便下面的方法将在requestParameters中获得额外的字段?

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("LogIn")
public Response logIn(@Context HttpServletRequest request, Parameters requestParameters) {...}
Run Code Online (Sandbox Code Playgroud)

谢谢!

json web-services jax-rs weblogic12c

4
推荐指数
1
解决办法
3266
查看次数

为什么JAX-WS是JDK的一部分,而JAX-RS不是呢?

使用Eclipse时,我可以使用JAX-WS批注(例如@WebService),而无需包含任何外部依赖项,但是我不能对JAX-RS批注(例如@Path)进行相同的操作。我看了一下这个答案,我知道这javax.ws.rs不是JDK的一部分。为什么JAX-WS是JDK的一部分而JAX-RS不是呢?其次,如果我在GlassFish或WildFly服务器上部署带有JAX-WS注释的应用程序,该服务器是否使用众所周知的WebService堆栈来运行该应用程序(例如Metro)或它自己的实现?

web-services jax-rs jax-ws java-ee

4
推荐指数
1
解决办法
2515
查看次数

jersey-rs web服务中的init方法

我是jax-rs的新手,并且已经建立了一个带有平针织物和玻璃鱼的网络服务.

我需要的是一个方法,一旦服务启动就会调用它.在这个方法中,我想加载自定义配置文件,设置一些属性,写一个日志,等等......

我尝试使用servlet的构造函数,但每次调用GET或POST方法时都会调用构造函数.

我有什么选择才能意识到这一点?

请告诉我,如果需要一些依赖项,请告诉我如何将它添加到pom.xml(或其他)

jax-rs init jersey

4
推荐指数
1
解决办法
2548
查看次数

RESTEASY003200:找不到以下类型的消息正文阅读器:类org.glassfish.jersey.media.multipart.FormDataMultiPart

我想上传图像并将一些参数发送到我的java rest服务。jersey-media-multipart我已经添加到我的应用程序中,pom.xml并且将必要的配置设置为ApplicationConfigclass。我正在将Wildfly 11用于应用程序服务器。但是我一直在收到此异常。

11:29:36,199 ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n] (default task-35) RESTEASY002010: Failed to execute: javax.ws.rs.NotSupportedException: RESTEASY003200: Could not find message body reader for type: class org.glassfish.jersey.media.multipart.FormDataMultiPart of content type: multipart/form-data;boundary=--------------------------291101341234694996301314
    at org.jboss.resteasy.core.interception.ServerReaderInterceptorContext.throwReaderNotFound(ServerReaderInterceptorContext.java:53)
    at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.getReader(AbstractReaderInterceptorContext.java:80)
    at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53)
    at org.jboss.resteasy.security.doseta.DigitalVerificationInterceptor.aroundReadFrom(DigitalVerificationInterceptor.java:36)
    at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:59)
    at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:151)
    at org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:92)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:115)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:406)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:213)
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at com.mepsan.outra.global.LoginFilter.doFilter(LoginFilter.java:41) …
Run Code Online (Sandbox Code Playgroud)

multipartform-data jax-rs resteasy

4
推荐指数
1
解决办法
3382
查看次数