标签: embedded-jetty

如何防止在嵌入式 Jetty 实例中缓存静态文件?

我想防止我的 CSS 被缓存在浏览器端。如何在嵌入式 Jetty 实例中执行此操作?

如果我使用 xml 配置文件,我会添加如下几行:

<init-param>
  <param-name>cacheControl</param-name>
  <param-value>max-age=0,public</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)

我怎样才能把它变成代码?

现在我以这种方式启动 Jetty:

BasicConfigurator.configure();

Server server = new Server();
SocketConnector connector = new SocketConnector();
// Set some timeout options to make debugging easier.
// 1 hour
connector.setMaxIdleTime( 1000 * 60 * 60 );
connector.setSoLingerTime( -1 );
connector.setPort( 8081 );
server.setConnectors( new Connector[] { connector } );

WebAppContext bb = new WebAppContext();
bb.setServer( server );
bb.setContextPath( "/" );
bb.setWar( "src/webapp" );

server.addHandler( bb );
Run Code Online (Sandbox Code Playgroud)

我想我应该在 WebAppContext 职责范围内的某个地方搜索 setControlCache 。 …

caching jetty embedded-jetty

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

如何初始化网络应用程序?

我的 Web 应用程序将作为 WAR 包部署在 Jetty 实例中。在服务请求之前,它需要执行大量缓存。在执行其他操作之前我如何调用缓存方法?Web 应用程序标准中的 static void main() 是吗?

web-applications initialization embedded-jetty

5
推荐指数
1
解决办法
3827
查看次数

使用JSP使用嵌入式Jetty会出现错误"web-jsptaglibrary_1_2.dtd not found"

我使用嵌入式Jetty来启动webapp,我使用JSP页面作为视图.

使用maven-jetty-plugin可以很好地进行测试,这让我觉得我在引导服务器时缺少一些依赖项(这是问题的根本原因).

我用命令引导Jetty:

java $JAVA_OPTS -cp target/classes:target/dependency/* xxx.Main
Run Code Online (Sandbox Code Playgroud)

我已经在Maven中使用了依赖插件,以确保获得类路径上的所有deps(在打包的war文件之外):

<execution>
<id>copy-dep</id>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
Run Code Online (Sandbox Code Playgroud)

Main类看起来像这样:

      Server server = new Server(8080);
    WebAppContext root = new WebAppContext();
    root.setContextPath("/");
    root.setWar("target/app.war");
    server.setHandler(root);
    server.start();
    server.join();
Run Code Online (Sandbox Code Playgroud)

嵌入式Jetty服务器启动时没有错误,但是当导航到返回JSP页面的URL时,我总是会收到此错误.

堆栈跟踪:

PWC6181: File /javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd not found

Caused by:

org.xml.sax.SAXException: PWC6181: File /javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd not found
at org.apache.jasper.xmlparser.MyEntityResolver.resolveEntity(ParserUtils.java:566)
at com.sun.org.apache.xerces.internal.util.EntityResolverWrapper.resolveEntity(EntityResolverWrapper.java:107)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.resolveEntityAsPerStax(XMLEntityManager.java:1018)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1192)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1090)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1003)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:296)
at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:366)
at org.apache.jasper.runtime.TldScanner.scanTld(TldScanner.java:526) …
Run Code Online (Sandbox Code Playgroud)

jsp embedded-jetty

5
推荐指数
1
解决办法
3999
查看次数

嵌入式码头实现 HttpSessionListener

我正在尝试使用带有代理servlet的嵌入式jetty实现HttpSessionListener接口,我已经注册了SessionListener,但它根本没有被调用,这里是代码,

   public class JettyProxy {

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


        ServerConnector connector = new ServerConnector(server);
        connector.setPort(8888);
        server.addConnector(connector);

        ConnectHandler proxy = new ConnectHandler();

        server.setHandler(proxy);

        ServletContextHandler context = new ServletContextHandler(proxy, "/",
                ServletContextHandler.SESSIONS);
        ServletHolder proxyServlet = new ServletHolder(customProxyServlet);

        context.addServlet(proxyServlet, "/*");

        if (context.getSessionHandler() == null) {
            System.out.println("Session handler is null");
        } else {
            System.out.println("Session handler is not null");
        }

        if (context.getSessionHandler().getSessionManager() == null) {
            System.out.println("Managaer it null");
        } else {
            System.out.println("Manager …
Run Code Online (Sandbox Code Playgroud)

jetty embedded-jetty

5
推荐指数
1
解决办法
2875
查看次数

Embedded Jetty:在安全的 https 服务器中,ContextHandler 重定向到 http URI

我正在使用嵌入式 Jetty 构建沙箱 RESTful API。我的概念验证设计:一个简单的嵌入式码头服务器,它 (1) 接受 SSL 端口上的连接,(2) 使用 ContextHandlerCollection 根据 URI 前缀调用正确的处理程序。

我的原始测试使用简单的非 SSL 连接,似乎运行良好(注意,附录中的导入代码和助手 HelloHandler 类)。

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

    ContextHandler test1Context = new ContextHandler();
    test1Context.setContextPath("/test1");
    test1Context.setHandler(new HelloHandler("Hello1"));

    ContextHandler test2Context = new ContextHandler();
    test2Context.setContextPath("/test2");
    test2Context.setHandler(new HelloHandler("Hello2"));

    ContextHandlerCollection contextHandlers = new ContextHandlerCollection();
    contextHandlers.setHandlers(new Handler[] { test1Context, test2Context });

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

但是,在对此进行测试时,我忽略了当我省略尾部正斜杠时发生浏览器重定向的情况,因此http://localhost:12000/test1 被重定向到http://localhost:12000/test1/. (FWIW,该站点稍后将转化为 4 个多小时的故障排除)。

当我切换到 HTTPS SSL 连接时,一切都出错了。代码如下:

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

rest ssl jetty embedded-jetty http-redirect

5
推荐指数
1
解决办法
4105
查看次数

无法以编程方式配置带有嵌入式jetty的Swagger

我一直在尝试使用招摇来记录我的jaxrs-resteasy服务.我想在嵌入式jetty服务器设置中以编程方式配置它.这是我的资源,服务器和应用程序类.我可以访问http://127.0.0.1:9091/rest/hello并验证我的休息服务是否正常工作..但是当我尝试访问时http://127.0.0.1:9091/rest/api-docs我无法使其工作,但是看到404找不到.有人能指出我在配置Swagger时可能出错的地方.

资源文件

@Api(value = "/", description = "Index")
@Path("/")
public class Index {

    @GET
    @ApiOperation(
                value = "call Index",
                response = Response.class,
                responseContainer = "Object"
            )
    @Produces("text/html")
    public Response  index() throws URISyntaxException { 
        File f = new File(System.getProperty("user.dir")+"/index.html");
        String mt = new MimetypesFileTypeMap().getContentType(f);
        return Response.ok(f, mt).build();   
    }

    @GET
    @Path("/hello")
    @ApiOperation(
                value = "hello Get",
                response = Response.class,
                responseContainer = "Object"
            )
    public Response  helloGet() {     
        return Response.status(200).entity("HTTP GET method called").build();
    }

}
Run Code Online (Sandbox Code Playgroud)

服务器

public class JettyServer …
Run Code Online (Sandbox Code Playgroud)

rest jax-rs embedded-jetty swagger

5
推荐指数
0
解决办法
1230
查看次数

升级到jetty-9.3.3后JSP编译错误

我有一个在嵌入式 Jetty-7.6.8 (jdk-6) 上运行的 webapp 应用程序,但由于浏览器上的 Diffie-Hellman 错误,我们决定迁移到较新版本的 Jetty。因此,我们迁移到 Jetty-9.3.3。由于Jetty-9.x需要jdk-8,所以我也升级了jdk。现在 jetty 启动时没有错误,但是当我尝试访问我的登录页面时,出现无法编译 jsp 错误。

这些是依赖项:

-org.eclipse.jetty.apache-jsp-9.3.3.v20150827.jar
-org.mortbay.jasper.apache-el-8.0.23.M1.jar 
-org.mortbay.jasper.apache-jsp-8.0.23.M1.jar
-org.eclipse.jetty.orbit.org.eclipse.jdt.core-3.8.2.v20130121.jar
-jetty-continuation-9.3.3.v20150827.jar 
-jetty-http-9.3.3.v20150827.jar
-jetty-io-9.3.3.v20150827.jar 
-jetty-security-9.3.3.v20150827.jar
-jetty-server-9.3.3.v20150827.jar 
-jetty-servlet-9.3.3.v20150827.jar
-jetty-util-9.3.3.v20150827.jar 
-jetty-webapp-9.3.3.v20150827.jar
-jetty-xml-9.3.3.v20150827.jar
-servlet-api-3.1.jar
Run Code Online (Sandbox Code Playgroud)

日志/浏览器上出现的错误:

HTTP ERROR 500

Problem accessing /xdadm/test.jsp. Reason:

Server Error

Caused by:

org.apache.jasper.JasperException: Unable to compile class for JSP
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:816)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1686)
at com.xcom.filter.RequestHandler.doFilter(RequestHandler.java:91)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1156)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) …
Run Code Online (Sandbox Code Playgroud)

java jsp jetty embedded-jetty jetty-9

5
推荐指数
1
解决办法
7788
查看次数

Java Spark 和 Jetty 用户定义的配置文件和参数

我想弄清楚如何为 Java Spark(微框架)及其 Jetty 实现设置配置文件。

我已经设法将完整的应用程序部署为单个 .jar 文件及其依赖项,我非常喜欢这个选项,但如果我这样做,我不确定如何设置一个既可以帮助配置的外部配置文件Jetty 也有一些用户定义的参数,用于运行应用程序的其他部分。

我不希望这些配置选项出现在代码中,而是一个 JSON、YAML、XML 等...配置属性文件

鉴于我部署它的方式,是否有可能?

我读过我只需要编辑start.ini和创建一个/resources/myconfig.properties文件,尽管考虑到我的部署方法,我不相信它会这样工作。

java jetty embedded-jetty spark-java

5
推荐指数
0
解决办法
499
查看次数

如何使用 ssl.enable=true 和非安全的“/health”端点创建 Spring Boot 应用程序

是否可以将 Spring Boot 应用程序( Jetty )配置为至少有一个非安全(非 https)端点,以便负载均衡器执行运行状况检查,但所有其他请求都必须强制安全?

设置属性时:

server.ssl.enabled=true

对所有端口(常规端口和管理/执行器端口)的请求都强制为 https。

安全请求 URL 中的服务器名称必须与配置的证书匹配。像 kubernetes 这样的负载均衡器或容器管理器必须使用某种主机名到服务器的映射来访问服务器池中的每个节点。

https spring embedded-jetty spring-boot

5
推荐指数
1
解决办法
7551
查看次数

Apache Nifi 在 DocGenerator.generate() 期间无法启动 Web 服务器(正在关闭)

Apache-Nifi v-1.7.1 在 AWS Centos 机器上运行良好,但现在在重新启动时抛出以下错误:(在 /nifi-app.log 的内容下方)

            org.apache.nifi:nifi-standard-nar:1.7.1 || ./work/nar/extensions/nifi-standard-nar-1.7.1.nar-unpacked
    org.apache.nifi.processors.standard.FetchSFTP
            org.apache.nifi:nifi-standard-nar:1.7.1 || ./work/nar/extensions/nifi-standard-nar-1.7.1.nar-unpacked
    org.apache.nifi.processors.azure.eventhub.ConsumeAzureEventHub
            org.apache.nifi:nifi-azure-nar:1.7.1 || ./work/nar/extensions/nifi-azure-nar-1.7.1.nar-unpacked
    === End Processor types ===
2019-01-21 10:07:15,987 WARN [main] org.apache.nifi.web.server.JettyServer Failed to start web server... shutting down.
java.lang.NullPointerException: null
    at org.apache.nifi.documentation.DocGenerator.generate(DocGenerator.java:62)
    at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:835)
    at org.apache.nifi.NiFi.<init>(NiFi.java:157)
    at org.apache.nifi.NiFi.<init>(NiFi.java:71)
    at org.apache.nifi.NiFi.main(NiFi.java:292)
2019-01-21 10:07:15,987 INFO [Thread-1] org.apache.nifi.NiFi Initiating shutdown of Jetty web server...
2019-01-21 10:07:15,988 INFO [Thread-1] org.apache.nifi.NiFi Jetty web server shutdown completed (nicely or otherwise).
Run Code Online (Sandbox Code Playgroud)

embedded-jetty apache-nifi hortonworks-sandbox

5
推荐指数
1
解决办法
5104
查看次数