2016-08-17 100 views
0

我正在尝试在我的弹簧引导应用程序中为Jetty服务器配置AJP端口。但是,我已经看到有关Tomcat AJP连接器的示例,但不适用于Jetty。有人能告诉我如何在Jetty上配置AJP端口吗?在Spring引导应用程序中在Jetty上配置AJP端口

+0

您使用的是什么版本的春天启动的? –

回答

2

默认情况下,Spring引导包捆绑了Jetty 9.3。 AJP功能已在9号码头中被抛弃。如果您真的需要使用AJP,那么您必须将jetty 8添加到您的类路径中,然后编写一个自定义的JettyServerCustomizer(http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/context/embedded/jetty/JettyServerCustomizer.html)。

我不认为你会发现有关此配置的春季文档中的任何内容。一旦你开始写定制器,你必须通读Jetty文档来了解如何实现AJP配置。

Jetty已经停止AJP转向HTTP连接器。除非你有一个真正的用例,否则我将会迁移到HTTP。

我没有尝试过的代码,但这应该工作(需要在春季启动代码被包裹)

return new JettyServerCustomizer() { 

      @Override 
      public void customize(Server server) { 
       s.addConnector(new Ajp13SocketConnector()); 

      } 
     }; 

您需要在码头服务器8.x和码头,AJP 8.x的您类路径。随着最新版本8.x中,你的pom.xml(如果你是一个Maven的用户)应包含以下内容:建议上面的例子中

<dependency> 
     <groupId>org.eclipse.jetty</groupId> 
     <artifactId>jetty-server</artifactId> 
     <version>8.1.19.v20160209</version> 
    </dependency> 
    <dependency> 
     <groupId>org.eclipse.jetty</groupId> 
     <artifactId>jetty-ajp</artifactId> 
     <version>8.1.19.v20160209</version> 
    </dependency> 
+0

有任何我可以使用的样本? 我之前尝试过使用jetty9,现在我正在尝试使用jetty8。 无法弄清楚如何配置ajp –

+0

Jetty项目强烈建议在mod_ajp上使用Apache httpd的'mod_proxy'模块 –

+0

谢谢v很多。 –

0

全样本对于任何的参考

@Bean 
    public EmbeddedServletContainerFactory jettyContainer() { 
     JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory(); 
     JettyServerCustomizer customizers = new JettyServerCustomizer() { 
      @Override 
      public void customize(Server server) { 
//    Connector connector = new Ajp13SocketConnector(); 
//    connector.setPort(9009); //if you want a custom port 
       server.addConnector(new Ajp13SocketConnector()); 
      } 
     }; 
     factory.addServerCustomizers(customizers); 
     return factory; 
    } 

日志

oejetty.server.AbstractConnector:开始 [email protected]:7090 oejetty.server.AbstractConnector :开始[email protected]:9009 o.e.jetty.ajp.Ajp13SocketConnector:AJP13不是一个安全协议。 请保护端口9009 .s.b.c.e.j.JettyEmbeddedServletContainer: 码头开始端口7090,9009

相关问题