标签: embedded-jetty

Google AppEngine +本地JUnit测试+ Jersey框架+嵌入式Jetty

我使用Google Appengine for Java(GAE/J).最重要的是,我使用Jersey REST框架.

现在我想运行本地JUnit测试.考试

不幸的是,Jersey/Jetty组合产生了新的线程.GAE期望只运行一个线程.最后,我最终在Jersey-resources内部没有数据存储区,也没有多个数据存储区.

作为一种解决方法,我只将GAE本地环境初始化一次,将其置于静态变量中,并在GAE资源内部添加许多检查(此线程没有开发环境?重新使用静态环境变量).而这些检查当然应该只内JUnit测试运行..(我问过:"我怎么可以找出代码是JUnit测试中运行或不" -我不能直接在这里发布的链接: - |)

java google-app-engine junit jersey embedded-jetty

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

如何在Jetty中以编程方式设置gzip?

我正在使用Noir和clojure编写一个Web应用程序,它使用Jetty.Jetty有两种使用gzip的方法,一种用于静态,一种用于动态,它们在/sf/answers/637919061/中有描述.我想打开静态和动态gzipping,但我们的项目不使用web.xml文件,也不想启动.

如何以编程方式设置jetty以使用gzip(即没有web.xml)?

jetty clojure embedded-jetty

6
推荐指数
1
解决办法
2264
查看次数

为maven添加jar到jetty插件

我曾经在本地tomcat服务器上部署我的WAR,并在libtomcat 的文件夹中有一个jackson-core.jar .现在,我已切换到maven并使用jetty插件.

一切正常,但406 error - The server responded with 406 error (Not acceptable)我知道错误即将到来,因为app server(jetty)中没有jackson-core.jar.

题:

如何将jar放在嵌入式jetty的lib文件夹中,就像我为独立的tomcat服务器所做的那样.这可能吗?

我尝试过以下方法:

<configuration>
  <scanIntervalSeconds>5</scanIntervalSeconds>
  <webAppConfig>
  <contextPath>/myapp</contextPath>
  <extraClasspath>/Users/myuser/Downloads/jackson-core-2.1.0.jar</extraClasspath>
  </webAppConfig> 
</configuration>
Run Code Online (Sandbox Code Playgroud)

tomcat embedded-jetty maven maven-jetty-plugin

6
推荐指数
1
解决办法
2777
查看次数

嵌入式Jetty服务器类路径问题

我正在尝试在嵌入式Jetty服务器上部署Web应用程序.我的应用程序在Windows环境中使用下面的代码在本地运行良好,但是当我在Linux服务器上将其部署为JAR文件时,看起来我的web.xml文件没有被选中.在构建JAR之前,我是否需要在下面的Descriptor或ResourceBase字段中更改某些内容?

static void startJetty() {
        try {
            Server server = new Server(9090); 
            WebAppContext context = new WebAppContext();
            context.setDescriptor("/WEB-INF/web.xml");                     
            context.setResourceBase("../DemoWithMultiChannels/src/");
            context.setContextPath("/");            
            context.setParentLoaderPriority(true);   
            server.setHandler(context);

            System.out.println("Starting Server!");             
            server.start(); 
Run Code Online (Sandbox Code Playgroud)

web.xml embedded-jetty

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

如何将Access-Control-Allow-Origin添加到jetty服务器

我有一个jetty服务器来运行我的Web服务.最近我开发了一个使用Web服务的程序并遇到了Access-Control-Allow-Origin问题.

如何将Access-Control-Allow-Origin:*添加到jetty嵌入式服务器.

下面是webappcontext代码.

public WebAppContext buildWebAppContext(){
    webAppContext = new WebAppContext();
    webAppContext.setDescriptor(webAppContext + "/WEB-INF/web.xml");
    webAppContext.setResourceBase(".");
    webAppContext.setContextPath("/posApplication");
    webAppContext.setAttribute("webContext", webAppContext);
    return webAppContext;
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

java jetty embedded-jetty

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

如何配置嵌入式jetty来访问Jersey资源?

我正在尝试配置嵌入式jetty来与我的Jersey资源交谈,但我无法弄清楚如何做到这一点.我尝试过几种不同的东西但似乎没什么用.jetty教程并没有真正处理如何使用Jersey.任何代码建议或链接都​​非常感谢

编辑:

 package pojo;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.glassfish.jersey.servlet.ServletContainer;

public class Main {

    public static void main(String[] args) throws Exception {
        Server server = new Server(8112);
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        server.setHandler(context);
        ServletHolder h = new ServletHolder(new ServletContainer());
        h.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig");
        h.setInitParameter("com.sun.jersey.config.property.packages", "resources");
        h.setInitOrder(1);
        context.addServlet(h, "/*");
        try
        {
            server.start();
            server.join();
        }
        catch (Throwable t)
        {
            t.printStackTrace(System.err);
        }
Run Code Online (Sandbox Code Playgroud)

试图连接到这个类:

package resources;


import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Request;
import …
Run Code Online (Sandbox Code Playgroud)

java jetty jersey embedded-jetty

6
推荐指数
1
解决办法
7199
查看次数

嵌入式Jetty 9

我不明白我怎么能改写用于jetty 6的jetty 6的代码:

import org.mortbay.jetty.*;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;

public class ApplLauncher {
    public static void main(String[] args) {
        Server server = new Server();

        Connector connector = new SelectChannelConnector();
        connector.setPort(8080);
        server.addConnector(connector);

        WebAppContext root = new WebAppContext("C:\\Users\\OZKA\\IdeaProjects\\projectname\\projectname\\web", "/");
        root.setWelcomeFiles(new String[]{"index.html"});
        //root.addServlet(new ServletHolder(new TestServlet()), "/test");

        server.setHandlers(new Handler[]{root});

        try {
            server.start();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,并响应web.xml中映射的web文件夹和servlet中的静态内容.这是我尝试使用嵌入式码头9:

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.Handler;


public class ApplLauncher {
    public static void …
Run Code Online (Sandbox Code Playgroud)

java servlets embedded-jetty

6
推荐指数
1
解决办法
5402
查看次数

使用Spring Boot自定义Jetty的HttpConfiguration

我正在使用spring boot(截至目前为1.2.1),我需要增加默认的8k请求头大小限制,该限制存在HttpConfiguration于Jetty的类中.看看JettyEmbeddedServletContainerFactory哪些我可以掌握,EmbeddedServletContainerCustomizer但无法看到如何改变它的方式.

我也确实看了一下JettyServerCustomizer- 我明白我可以Server通过它再次抓住码头- 没办法怎么改变HttpConfiguration这里.

任何提示将不胜感激.

embedded-jetty spring-boot jetty-9

6
推荐指数
1
解决办法
2453
查看次数

使用Spark Web框架时如何使用本机Servlet过滤器?

我正在玩Spark(Java Web框架,而不是Apache Spark).

我觉得定义路由和过滤器真的很好很容易,但是我希望在我的路由中应用本机servlet过滤器,似乎无法找到一种方法.

更具体地说,我想使用Jetty的DoSFilter,它是一个servlet过滤器(与Spark Filter定义形成对比).由于Spark使用嵌入式Jetty,我没有web.xml来注册DoSFilter.但是,Spark不会公开服务器实例,所以我找不到以编程方式注册过滤器的优雅方式.

有没有办法将本机servlet过滤器应用于我的路由?

我想把DoSFilter包装在我自己的Spark Filter中,但这似乎是一个奇怪的想法.

servlets embedded-jetty servlet-filters spark-java

6
推荐指数
1
解决办法
1173
查看次数

为什么有必要将一个Response对象而不是String对象返回给java中的http请求?

我定义了我的REST方法,以返回String数据类型作为对http请求的响应.就是这个:

    @Path("/users/{name}/")
    @GET
    @Produces("application/json")
    public String getAllUserMemberships(@PathParam("name") String name) throws Exception{

        String doc = "{\"name\":\""+name+"\",\"message\":\"Logged in\"}";

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

它工作正常,但有人告诉我宁愿返回一个javax.ws.rs.core.Response对象,如下面的示例代码所示.这也很好,他说这是响应HTTP请求的最佳方式但他不知道为什么.

    @Path("/users/{name}/")
    @GET
    @Produces("application/json")
    public Response getAllUserMemberships(@PathParam("name") String name) throws Exception{

        String doc = "{\"name\":\""+name+"\",\"message\":\"Logged in\"}";


        return Response.ok(doc, MediaType.APPLICATION_JSON).build();
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是:当你可以返回一个String时,是否有必要将Response对象返回给HTTP请求.如果有必要,请告诉我为什么因为对于HTTP请求而言哪一个是正确的.我也担心Response对象可能会给我一些我可能无法处理的问题.

java rest jetty jersey embedded-jetty

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