标签: embedded-jetty

使用嵌入式Jetty提供静态文件

我正在尝试构建一个带有嵌入式Jetty的简单演示应用程序,该应用程序提供来自"html"目录的静态文件,该目录是当前工作目录的子目录.我们的想法是,包含演示jar和内容的目录可以移动到新位置并仍然有效.

我尝试过以下各种变体,但我一直在使用404.

ServletContextHandler context = 
                       new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");

context.getInitParams().put(
                       "org.eclipse.jetty.servlet.Default.resourceBase", "html");
context.addServlet(new ServletHolder(new DefaultServlet()), "/html");

Server jetty = new Server(8080);
jetty.setHandler(context);

jetty.start();
Run Code Online (Sandbox Code Playgroud)

更新:这是Jetty教程中记录的解决方案.如正确答案所述,它使用的是a ResourceHandler而不是ServletContextHandler:

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

    ResourceHandler resource_handler = new ResourceHandler();
    resource_handler.setDirectoriesListed(true);
    resource_handler.setWelcomeFiles(new String[]{ "index.html" });

    resource_handler.setResourceBase(".");

    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
    server.setHandler(handlers);

    server.start();
    server.join();
Run Code Online (Sandbox Code Playgroud)

java jetty embedded-jetty

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

码头:嵌入还是不嵌入?

嵌入码头与在码头部署您的webapp 有什么好处?如果您计划部署多个Web应用程序,您是否应该严格执行为每个Web应用程序部署war文件(而不是编写调用每个Web应用程序的嵌入式服务器)?

java web-applications jetty embedded-jetty

48
推荐指数
3
解决办法
9824
查看次数

OkHttp如何获得Json字符串?

解决方案:这是我的错误.

正确的方法是response.body().string()而不是response.body.toString()

我使用Jetty servlet,URL http://172.16.10.126:8789/test/path/jsonpage,每次请求此URL将返回

{"employees":[
    {"firstName":"John", "lastName":"Doe"}, 
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]}
Run Code Online (Sandbox Code Playgroud)

它显示在将URL输入浏览器时,不幸的是,当我请求时,它显示的是除了json字符串之外的那种内存地址Okhttp.

TestActivity? com.squareup.okhttp.internal.http.RealResponseBody@537a7f84
Run Code Online (Sandbox Code Playgroud)

Okhttp代码我使用:

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
  Request request = new Request.Builder()
      .url(url)
      .build();

  Response response = client.newCall(request).execute();
  return response.body().string();
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮忙吗?

java http embedded-jetty okhttp

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

Eclipse RCP插件+嵌入式Jetty + JSF

我用嵌入式Jetty创建了一个RCP插件,如下所示:

1)在plugin.xml - > Dependencies中,我添加了以下内容:

org.eclipse.equinox.http.jetty
org.eclipse.equinox.http.registry
org.mortbay.jetty.server
javax.servlet
Run Code Online (Sandbox Code Playgroud)

2)在plugin.xml - > Extensions中,我添加了一个Servlet扩展点(org.eclipse.equinox.http.registry.servlet)

class: TemperatureServlet
alias:/temperature
Run Code Online (Sandbox Code Playgroud)

TemperatureServlet看起来是这样的:

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TemperatureServlet extends HttpServlet {

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        System.out.println("doGet Called");

        resp.sendRedirect("Convertor.jsp");
    }
}
Run Code Online (Sandbox Code Playgroud)

Convertor.jsp文件如下所示:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" …
Run Code Online (Sandbox Code Playgroud)

jsf jsp jetty eclipse-rcp embedded-jetty

45
推荐指数
1
解决办法
2295
查看次数

Spring 3.1 WebApplicationInitializer和Embedded Jetty 8 AnnotationConfiguration

我正在尝试使用Spring 3.1和嵌入式Jetty 8服务器创建一个没有任何XML配置的简单webapp.

但是,我正在努力让Jetty认识到我对Spring WebApplicationInitializer接口的实现.

项目结构:

src
 +- main
     +- java
     |   +- JettyServer.java
     |   +- Initializer.java
     | 
     +- webapp
         +- web.xml (objective is to remove this - see below).
Run Code Online (Sandbox Code Playgroud)

上面的Initializer类是WebApplicationInitializer的一个简单实现:

import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import org.springframework.web.WebApplicationInitializer;

public class Initializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        System.out.println("onStartup");
    }
}
Run Code Online (Sandbox Code Playgroud)

同样JettyServer是嵌入式Jetty服务器的简单实现:

import org.eclipse.jetty.annotations.AnnotationConfiguration;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.Configuration;
import org.eclipse.jetty.webapp.WebAppContext;

public class JettyServer {

    public static void main(String[] args) throws …
Run Code Online (Sandbox Code Playgroud)

java jetty spring-mvc embedded-jetty jetty-8

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

如何创建嵌入式WebSocket服务器Jetty 9?

我讨厌问这么模糊的问题,但我很难找到一个简单的例子.这是我到目前为止所拥有的:

public class JettyWebSocketServlet extends WebSocketServlet{
    @Override
    public void configure(WebSocketServletFactory factory) {
        factory.register(MyEchoSocket.class);
    }
}

@WebSocket
public class MyEchoSocket {
    @OnWebSocketMessage
    public void onText(WebSocketConnection conn, String message) {
        System.out.println("text: " + message);
        try {
            conn.write(null, new FutureCallback(), "got: " + message);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以找到的嵌入式Jetty示例总是显示如下所示,以启动Server实例运行,但我不知道如何实例化我的WebSocketServlet.

        Server server = new Server(8080);
        server.start();
        server.join();
Run Code Online (Sandbox Code Playgroud)

如何创建可以处理WebSocket连接请求的嵌入式服务器?

java jetty embedded-jetty websocket

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

使用web.xml配置嵌入式jetty?

我试图用我的Web应用程序生成一个战争以及一个带有嵌入式jetty的自包含jar文件.对于嵌入式jetty(jar文件分发),我添加一个servlet,如下所示:

public static void main(String[] args) throws Exception {
    Server server = new Server(8080);

    ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    context.setContextPath("/");
    server.setHandler(context);

    context.addServlet(new ServletHolder(new HelloServlet()),"/*");

    server.start();
    server.join();
}
Run Code Online (Sandbox Code Playgroud)

war文件分发使用web.xml文件,该文件在web-app部分中包含以下内容:

<servlet>
    <servlet-class>com.example.HelloServlet</servlet-class>
    <servlet-name>SimplestServer</servlet-name>
</servlet>
<servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

这有效.但是,我想摆脱两种方法之间的重复.即,当我添加一个新的servlet时,我想要只在一个位置配置它.我可以从嵌入式jetty加载和使用web.xml文件吗?

java jetty java-ee embedded-jetty maven

27
推荐指数
2
解决办法
3万
查看次数

如何使用嵌入式jetty添加servlet过滤器

我正在将jetty嵌入到我的应用程序中,并试图找出如何添加servlet过滤器(用于cookie处理).wiki和javadoc没有说清楚,我错过了什么:

Server server = new Server(port);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
FilterHolder f = new FilterHolder(new AuthorisationFilter());
context.addFilter(... f ...); // ?????
context.addServlet(new ServletHolder(new TestServlet()), "/");
Run Code Online (Sandbox Code Playgroud)

我在此发现的唯一信息是一个论坛帖子,建议有关此文档的文档需要改进.

java jetty embedded-jetty servlet-filters

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

如何禁用Jetty的WebAppContext的目录列表?

我将Jetty(版本7.4.5.v20110725)嵌入到java应用程序中.我使用Jetty的WebAppContext在./webapps/jsp/中提供JSP页面,但如果我访问localhost:8080/jsp /我获取Jetty的目录列表,以获取./webapps/jsp/的全部内容.我已经尝试在WebAppContext上将dirAllowed参数设置为false,并且它不会更改目录列表行为.

在ResourceHandler上禁用目录列表就是将false传递给setDirectoriesListed,按预期工作.有人可以告诉我如何为WebAppContext执行此操作吗?

import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;

public class Test {

    public static void main(String[] args) throws Exception {
        Server server = new Server();
        SelectChannelConnector connector = new SelectChannelConnector();
        connector.setHost("127.0.0.1");
        connector.setPort(8080);
        server.addConnector(connector);

        // Create a resource handler for static content.
        ResourceHandler staticResourceHandler = new ResourceHandler();
        staticResourceHandler.setResourceBase("./webapps/static/");
        staticResourceHandler.setDirectoriesListed(false);

        // Create context handler for static resource handler.
        ContextHandler staticContextHandler = new ContextHandler();
        staticContextHandler.setContextPath("/static");
        staticContextHandler.setHandler(staticResourceHandler);

        // Create WebAppContext for …
Run Code Online (Sandbox Code Playgroud)

java jetty embedded-jetty

22
推荐指数
3
解决办法
2万
查看次数

Jetty:servlet与处理程序

我想了解Jetty;

请告诉我:

1)什么时候使用Servlet和处理程序时更好?

2)我可以使用带有Servlet的连接器来实​​现"每个请求线程模型"吗?

谢谢!!!

servlets jetty embedded-jetty

21
推荐指数
1
解决办法
6670
查看次数