Tag: jersey

在/ public_html / in Java下的Web服务器中创建一个文件夹

我正在尝试使用JERSEY开发的RESTFul Web服务中的Java文件处理API在Web服务器中创建一个文件夹。 根据我的理解,当我定位“xyz.com”时,它默认指出我的服务器中的/ home / xyz / public_html /。 所以当我尝试按如下方式创建文件夹时 String appFolderPath = “/xyz.com/appFolder/”; File userNameFolder = new File(appFolderPath + userName); if (!userNameFolder.exists()) { folderPath = userNameFolder.mkdir(); } 上面的代码失败,我没有得到任何exception,也没有创建文件夹。 我究竟该怎么做呢? 如何为public_html /文件夹提供路径? 另一点是,是否由于许可问题而发生? ,我实际上尝试了另一种方式,我在public_html /下手动创建/ appFolder并给予该文件夹完全读写权限,但仍然无法使用上面的代码在其中创建任何文件夹。 请让我知道如何实现它? 任何示例代码? 如果可能的话,让我知道JERSEY是否给我API以使其变得简单?

当可选参数为null时,从api调用中删除“/”

我们使用RESTful Web Services(Jersey)对java进行API调用。 虽然API需要可选参数,但我们这样做: api-interface/user/userid/9000/companyid/90909/{optionalparameter*} 当没有可选参数时,我们必须调用此api: api-interface/user/userid/9000/companyid/90909/ 需要的是: 情况:1如果存在可选参数 api-interface/user/userid/9000/companyid/90909/name/john/address/MA/age/34 情况:2如果Optional参数不存在。 api-interface/user/userid/9000/companyid/90909 我目前的实施是: @GET @Path(“user/companyid/{companyid}/userid/{userid}/{optionalparameter:.*}”) @Produces(MediaType.APPLICATION_JSON) public Response getUserList(@PathParam(“companyid”) String companyId, @PathParam(“userid”) String userId, @PathParam(“optionalparameter”) String syncDate) throws BadRequestException, InternalServerException { //parsing the param. } 在上面的代码中,我需要添加尾随“/”但我正在寻找删除这个尾随“/”的方法,如果有人不想传递这些参数。 我按照这个链接,但它没有工作,而前面的参数的长度超过1。 拜托,建议我最好的方法。

Tomcat Jersey Eclipse ClassNotFound org.glassfish.jersey.servlet.ServletContainer

我正在运行hello world示例。 但是,我使用的是2.7版本。 在maven pom.xml上我有 4.0.0 com.mydomain.restful AdvertServer 0.0.1-SNAPSHOT Advert Server org.glassfish.jersey jersey-bom 2.7 pom import com.google.code.gson gson 2.2.4 javax javaee-web-api 6.0 javax.ws.rs javax.ws.rs-api 2.0 provided org.glassfish.jersey.core jersey-client 2.7 org.glassfish.jersey.containers jersey-container-servlet-core 2.7 src src **/*.java maven-compiler-plugin 3.0 1.7 1.7 我尝试从命令行运行servlet,并在Eclipse上运行Server插件。 我犯了同样的错误: java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:126) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099) […]

jersey 2 + spring 4 + jetty-maven-plugin

我试图用一个使用jersey 2 + spring 4 + jetty-maven-plugin的例子。 但不断得到这个错误,无法理解为什么..请给我一个手。 WARNING: The Jersey servlet application, named com.joejag.code.orders.restservices.ResourceConfiguration, is not annotated with ApplicationPath and has no servlet mapping. 2015-12-16 19:56:38.746:INFO:/.0-SNAPSHOT:main: Spring WebApplicationInitializers detected on classpath: [org.glassfish.jersey.server.spring.SpringWebApplicationInitializer@2776015d] 2015-12-16 19:56:38.778:WARN:oejw.WebAppContext:main: Failed startup of context oejmpJettyWebAppContext@15fb7a32{/orders-server-1.0-SNAPSHOT,file:///home/bryan-1/workspace/project/java/simple-java-restful-service-using-jersey-and-maven-master/src/main/webapp/,STARTING}{file:///home/bryan-1/workspace/project/java/simple-java-restful-service-using-jersey-and-maven-master/src/main/webapp/} java.lang.IllegalStateException: No such servlet: Example 我的POM.xml 4.0.0 com.joejag.code.orders orders-server war 1.0-SNAPSHOT Example UTF-8 4.2.3.RELEASE 2.22.1 […]

如何使用Jersey Rest Webservices和Java解析JSON数组

我从iOS客户端获取Json数组,并希望使用Java和jersey以及Gson解析服务器端的Json。 我从iOS发送POST方法中的JSON数组。 我想使用json,但坚持如何在Java类中保存json数据。 这是我的Json数组的结构 { “friendList”: [ {“id”: 1, “username”: “user1”, “name”:”person1″, “friendUsername”:”fUser1″, “friendName”:”fName1″}, {“id”: 2, “username”: “user2”, “name”:”person2″, “friendUsername”:”fUser2″, “friendName”:”fName2″}, {“id”: 3, “username”: “user3”, “name”:”person3″, “friendUsername”:”fUser3″, “friendName”:”fName3″},… ] } 这是我的Web服务类 @Path(“/FriendsList”) public class RestWebServicesAPI { @POST @Path(“/friends”) @Consumes(MediaType.APPLICATION_JSON) public Friends saveFriedList(Friends friend, @Context HttpServletRequest request) { // Don’t know how to parse json array???? […]

Jersey SSE – eventOutput.write在发送第一条消息后抛出nullpointer

我使用Jersey实现了一个Restful Web界面,用于通过HTTP将从内部JMS发布者收到的消息发送到外部客户端。 我已经设法将测试消息发送到Java客户端,但线程在完成write()执行,关闭连接并阻止进一步通信之前抛出空指针exception。 这是我的资源类: @GET @Path(“/stream_data”) @Produces(SseFeature.SERVER_SENT_EVENTS) public EventOutput getServerSentEvents(@Context ServletContext context){ final EventOutput eventOutput = new EventOutput(); new Thread( new ObserverThread(eventOutput, (MService) context.getAttribute(“instance”)) ).start(); return eventOutput; } 这是我的线程的运行方法: public class ObserverThread implements Observer, Runnable { //constructor sets eventOutput & mService objects //mService notifyObservers() called when JMS message received //text added to Thread’s message queue […]

泽西+吉塞斯不能将非jersey资源与jersey资源混在一起

如何使用非jersey资源和jersey资源搭配guice? 我希望“/”由普通的servlet处理。 但我希望“/ users”由泽西队处理。 假设我有@Path(“/ users”)的泽西资源。 使用以下绑定将无法正常工作,它会尝试使用泽西映射“/”请求,当然这不是泽西资源,我得到404。 protected void configureServlets() { serve(“/”).with(LoginServlet.class); serve(“/*”).with(GuiceContainer.class, params); } 我可以找到的所有泽西/ guice的例子就像serve(“/rest/*”.with(GuiceContainer.class, params);这对我serve(“/rest/*”.with(GuiceContainer.class, params); (“/ rest / users”),但我想要的很好URI没有任何前缀,如’rest’或’ws’。

宁静的图片上传例外

我有一个安静的界面,如下所示。 我正在尝试使用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?

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的JAX RS的内存问题

我们目前在高效的服务器上遇到了一些麻烦,因为它消耗的内存过多。 其中一个漏洞可能来自jersey客户端。 我发现了以下两个问题以及如何: 如何正确共享JAX-RS 2.0客户端 关闭JAX RS客户端/响应 https://blogs.oracle.com/japod/entry/how_to_use_jersey_client 我从中获得了什么,我应该重用客户端,还可能重用WebTargets? 同时建议关闭响应,但是如何使用.request()执行此操作? 代码示例,每小时调用大约1000次不同的路径: public byte[] getDocument(String path) { Client client = ClientBuilder.newClient(); WebTarget target = client.target(config.getPublishHost() + path); try { byte[] bytes = target.request().get(byte[].class); LOGGER.debug(“Document size in bytes: ” + bytes.length); return bytes; } catch (ProcessingException e) { LOGGER.error(Constants.PROCESSING_ERROR, e); throw new FailureException(Constants.PROCESSING_ERROR, e); } catch (WebApplicationException […]