Tag: grizzly

找不到媒体类型= application / json的MessageBodyWriter

我已经尝试了一切……无法弄清楚为什么我会得到这个例外。 有趣的是,在我的IDE(Intellij)中,一切都顺利进行。 无法弄明白……放弃。 你们有什么建议吗? dependencies { compile group: ‘com.amazonaws’, name: ‘aws-java-sdk’, version: ‘1.10.27’ compile group: ‘org.slf4j’, name: ‘slf4j-api’, version: ‘1.7.7’ compile group: ‘ch.qos.logback’, name: ‘logback-classic’, version: ‘1.1.2’ compile group: ‘ch.qos.logback’, name: ‘logback-core’, version: ‘1.1.2’ compile group: ‘org.glassfish.jersey.media’, name: ‘jersey-media-json-jackson’, version: ‘2.22.1’ compile group: ‘org.glassfish.jersey.containers’, name: ‘jersey-container-grizzly2-http’, version: ‘2.22.1’ compile group: ‘org.glassfish.jersey.core’, name: ‘jersey-client’, version: ‘2.22.1’ […]

Grizzly服务器的基本身份validation

我已将此示例实现到我的应用程序中: HTTPS的客户端-服务器-灰熊 这是来自该链接的Server.java : public class Server { private static HttpServer webServer; public static final URI BASE_URI = getBaseURI(); public static final String CONTENT = “JERSEY HTTPS EXAMPLE\n”; private static URI getBaseURI() { return UriBuilder.fromUri(“https://localhost/”).port(getPort(4463)).build(); } private static int getPort(int defaultPort) { String port = System.getProperty(“jersey.test.port”); if (null != port) { try { return Integer.parseInt(port); […]

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页面。 我该怎么办

html服务器grizzly + jersey(.jtml来自.jar档案)

我想从.jar存档而不是从文件夹中提供我的.html网站。 目前我使用灰熊(带衬衫)并提供静态页面,如: HttpServer webServer; …. …. webServer.getServerConfiguration().addHttpHandler(new StaticHttpHandler(“varwww”), “/app”); webServer.start(); 有没有办法让网络服务器不从文件夹“varwww”中检索.html并从myhtml.jar获取它?

如何将Grizzly请求注入Jersey ContainerRequestFilter

我有泽西由Grizzly提供。 我有一个ContainerRequestFilter实现类。 但是,为所有传入请求创建此类一次。 因此这样做: public class EndpointRequestFilter implements ContainerRequestFilter { @Context private org.glassfish.grizzly.http.server.Request requestContext; public void filter( ContainerRequestContext req ) throws IOException { // remove for sake of example } } requestContext为null。 我可以将上下文注入到被调用的实际端点中,但这是相当粗糙和丑陋的,对我来说真的没用; 因为我想记录各种要求。 理想情况下,希望在Request的ResponseFilter端获取此Request对象。 必须有一种简单的方法来做到这一点。 到目前为止,我看到的所有问题/答案都不适用于Grizzly或注入REST端点调用的方法。 我不想绕过我所有的数百种方法,只是因为我想得到IP地址! 那么这里的关键是什么? 我错过了什么?

在Grizzly上使用JaaS和泽西岛

我正在尝试找到一种简单,灵活的方法来向REST添加JaaS身份validation。 我找到了一篇post ,我认为这个post引导我走向正确的方向(参见StevenC的回答)。 听起来servlet容器负责安全性,而不是Jersey代码本身。 我喜欢这个想法,但需要一点实施指导。 Grizzly是我的servlet容器,我想将其配置为使用JaaS进行身份validation。 现在,一个简单的用户名/密码组合就可以了,直接在代码中硬编码用户名/密码对就可以了。 只要它使用JaaS,我们就可以在以后细化这些细节。 至于通过HTTP发送的内容,我认为存储cookie将是使这一切全部工作的最简单方法。 无论如何使身份validation垃圾远离我的Jersey代码。 以下是到目前为止启动Grizzly的代码: final String baseUri = “http://localhost:9998/”; final Map initParams = new HashMap(); initParams.put(“com.sun.jersey.config.property.packages”, “my.jersey.Service”); System.out.println(“Starting grizzly…”); SelectorThread threadSelector = GrizzlyWebContainerFactory.create(baseUri, initParams); System.out.println(String.format( “Jersey app started with WADL available at %sapplication.wadl\n” + “Try out %shelloworld\nHit enter to stop it…”, baseUri, baseUri)); System.in.read(); threadSelector.stopEndpoint(); System.exit(0); 如果整个过程有效,那么检查用户权限的最佳方法是什么? 我可能希望我的REST代码在某些点实际validation权限。 […]

如何获取javax.ws.rs.core.UriInfo的实例

是否有任何javax.ws.rs.core.UriInfo实现,我可以用它来快速创建一个实例进行测试。 这个界面很长,我只需要测试一下。 我不想在这个界面的整个实现上浪费时间。 更新:我想为类似于此的函数编写unit testing: @GET @Path(“/my_path”) @Produces(MediaType.TEXT_XML) public String webserviceRequest(@Context UriInfo uriInfo);

jersey 2:如何创建自定义HTTP参数绑定

我正在尝试为我的restful服务创建一个自定义的http param绑定。 请参阅下面的示例。 @POST @Path(“/user/{userId}/orders”) @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public MyResult foo(@PathParam(“userId”) String someString, @UserAuthHeaderParam String authString){ } 您可以看到函数签名中有UserAuthHeaderParam注释。 我想要做的是有一个自定义的http param绑定,而不是标准的javax.ws.rs。* Param。 我试图实现org.glassfish.hk2.api.InjectionResolver,它基本上从http头中提取值: public class ProtoInjectionResolver implements InjectionResolver{ … @Override public Object resolve(Injectee injectee, ServiceHandle root) { return “Hello World”; } … } 当我调用restful服务时,服务器会获得exception。 它表明框架无法解析函数签名中的参数: org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at Injectee(requiredType=String,parent=MyResource,qualifiers={}),position=0,optional=false,self=false,unqualified=null,2136594195), java.lang.IllegalArgumentException: While […]

如何在运行grizzly的java se上启用web服务(jaxrs / jersey)中的CDI注入?

如何允许CDI将资源注入到宁静的Web服务资源中? 我使用焊接2(cdi),泽西(jaxrs)和灰熊(web服务器)在标准java上运行。 这是我简单的网络资源: import training.student.StudentRepository; import javax.inject.Inject; import javax.ws.rs.*; @Path(“student”) public class StudentWebResource { @Inject private StudentRepository studentRepository; @GET @Path(“count”) @Produces(MediaType.TEXT_PLAIN) public Integer getCount() { return studentRepository.studentCount(); } } 以下是我如何通过简单的Web服务器启动焊接: public class Main { public static void main(String[] args) throws Exception { startCdiApplication(); } public static void startCdiApplication() throws Exception { Weld weld = new […]