Tag: jax rs

在Java Jersey 2 JAX-RS中初始化单例

我是泽西岛的新手(2.22.2),请耐心等待。 我正在创建一个与LDAP服务器连接的REST服务,用于存储,删除和检索用户数据。 该服务通过执行加密/解密充当安全中介。 在使用REST服务之前必须进行相当多的初始化,并且我只想执行一次初始化(当应用程序部署在服务器上时)。 所以这项服务将作为单身人士运行。 如果有人可以给我一些关于最佳方法的指示,我将不胜感激吗? 谢谢!

ExceptionMapper在grizzly中不起作用

抱歉我的英语不好。 我正在使用灰熊和jersey来构建一个Web应用程序。 我这样实施 ErrorModel errorModel = new ErrorModel(“1”, “1”, “1”); WebApplicationException applicationException = (WebApplicationException) exception; return Response.status(applicationException.getResponse().getStatus()).type(MediaType.APPLICATION_JSON_TYPE).entity(errorModel).build(); 当我访问一个不存在的页面时。 我发现它抛出WebApplicationException。 所以我调试并发现正在调用此方法并返回上面的响应。 但最后http响应是一个由grizzly构建的html页面。 我该怎么办

javax.ws.rs.NotFoundException:无法找到完整路径错误发现的资源

我在这里几次发现同样的问题,但我找不到答案。 当我运行我的应用程序时,我得到以下错误 javax.ws.rs.NotFoundException: Could not find resource for full path: http://localhost:8080/RemoteQuartzScheduler/rest/TestClass/hello at org.jboss.resteasy.core.registry.ClassNode.match(ClassNode.java:73) at org.jboss.resteasy.core.registry.RootClassNode.match(RootClassNode.java:48) at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:444) at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:234) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:171) at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) 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:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) […]

使用jax-rs发送临时文件

我试图用jax-rs发送一个临时文件,并在下载完成后删除临时文件。 为此,我将InputSream子类化,以便在流关闭后得到通知。 这是我到目前为止: @GET @Path(“download/{fileName}”) public Response downloadFile(@PathParam(“fileName”) String fileName) { InputStream inputStream = new InputStreamWithFileDeletion(new getFile(filename)); Response.ResponseBuilder response = Response.ok((Object) file); response.header(“Content-Disposition”, “attachment; filename=”+”fileName”+”.xls”); return response.build(); } InputStreamWithFileDeletion: public class InputStreamWithFileDeletion extends FileInputStream { File f; public InputStreamWithFileDeletion(File file) throws FileNotFoundException { super(file); f = file; } @Override public void close() throws IOException { […]

在基于RESTful的应用程序中管理状态

我们正在评估用于基于Web的应用程序的技术,并且一些建议是采用基于RESTful的服务方法。 技术堆栈 1)Spring 2)Apache CXF(JAX-RS) 我的问题是 1)如何在请求之间管理状态。 例如,用户已经过身份validation,现在他正在发出一系列请求,让我们通过分页报告。 我想这会是这样的URL domain.com/reports/customreport/page/1 domain.com/reports/customreport/page/2等… a)存储用户信息和请求参数的位置,以便可以在请求之间共享。 b)让我们说结果是流式传输,Rowset存储在哪里? 是否有类似于Petclinic的完整示例应用程序可以为此类应用程序提供最佳实践。

Jax-RS MessageBodyReader

我正在学习MessageBodyReader方法如何从提供者工作。 我看到该方法返回一个对象,我不知道如何从服务访问该对象。 我可以获得如何从读者类返回对象的解释吗? 这将有助于我为所有dto应用阅读规则。 提前致谢! 服务: @POST @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) @Path(“/CreateAccount”) @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) public Response createAccount(@Context HttpServletRequest req) { String a = “Reader success? “;//Would to see that string here! return Response.ok().build(); } 提供者: @Provider public class readerClass implements MessageBodyReader { @Override public boolean isReadable(Class paramClass, Type paramType, Annotation[] paramArrayOfAnnotation, MediaType paramMediaType) […]

宁静的图片上传例外

我有一个安静的界面,如下所示。 我正在尝试使用jaxrs接口上传图像,但我遇到了一个错误 @POST @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) @Path(“createUserphotoDirectory/{userid}/{serverName}”) @Consumes(“multipart/form-data”) public String createUserDirectory(@PathParam(“userid”) Long userid, @PathParam(“serverName”) String serverName, MultipartFormDataInput input) { System.out.println(“1”); photoService.createServerImages(userid,serverName,input); return responseMessageSource.getMessage(“SUCCESSFULL_CRATED_ALBUM”,null,null); } 当我要求使用此表格时 JAX-RS Upload Form Select a file : 我收到此错误 – 客户端发送的请求在语法上是不正确的(java.lang.RuntimeException: Could find no Content-Disposition header within part). 我忘了写,我在mvc方面使用Springmvc,它可能属于spring mvc block?

Apache CXF生成Number而不是String

如果字符串看起来像一个数字,例如。 111 CXF不会将其作为字符串返回,而是作为数字返回。 可以看出,我使用的是JSON提供程序。 如何强制它,提供正确的JSON字符串? {object:{“name”:”111″}} instead of {object:{“name”:111}} 提前致谢…

Jersey Inject Weld管理bean进入ConstraintValidator

我一直在寻找几个小时来找到我的问题的解决方案,但我无法让它工作。 我想将我的Weld托管服务注入ConstraintValidator,该ConstraintValidator用于validation发布到我的JAX-RS Rest-Service的User-Object。 一切都部署到glassfish 4.1服务器。 我有这样的服务 @ApplicationScoped public class UserService { } 我想把它注入像这样的ConstraintValidator public class UniqueUserNameValidator implements ConstraintValidator { @Inject private UserService service; @Override public void initialize(UniqueUserName constraintAnnotation) { } @Override public boolean isValid(ApiUser value, ConstraintValidatorContext context) { return service.getByUserName(value.getUserName()) == null; } } REST资源看起来像这样 @Path(“users”) @Produces(MediaType.APPLICATION_JSON) public class UserResource { @Inject UserService userService; @POST […]

使用Jersey 2从我的资源类中提取接口时“无法找到合适的构造函数”

我怎样才能让泽西明白它应该使用具体的类而不是资源的接口? 我有一个有Status资源的工作应用程序。 然后我提取了一个接口IStatus ,并在那里移动了所有JAX-RS注释。 现在,我得到: org.glassfish.hk2.api.MultiException A MultiException has 1 exceptions. They are:1. java.lang.NoSuchMethodException: Could not find a suitable constructor in resource.IStatus class 我知道这适用于RestEasy。 有什么方法可以让它与泽西岛一起使用吗?