Tag: jetty

Jetty 8 + EJB 3.1 + JTA + CDI + JPA 2堆栈?

任何人都可以告诉我,目前是否可以通过Jetty“粘合”部分Java EE 6 Web配置文件? 我发现了很多关于将独立EJB 3容器,JTA提供程序等与旧Jetty版本集成的文章,所以如果我可以将它们全部协同工作,我就会更加努力。 我想组装一个Servlet 3.0 + CDI + EJB 3.1 + JTA(如果需要,我真正想要的是声明式事务管理)+ Jetty 8上的JPA 2环境(如果没有可用的Jetty替代品,则为Tomcat 7)。 我的问题是:可以做到吗? 有人设法做到了吗? 有关获取OpenEJB,Atomikos,Weld,EclipseLink和Jetty(或任何其他类似堆栈)一起工作的任何文章? 那里有任何神奇的“全部”pom.xml文件? PS:是的,我知道我可以使用GlassFish(我非常喜欢)。 我只是想知道如何使用Servlet容器获得类似的function,以及两个环境在复杂性,性能,大小,部署速度,硬件资源消耗等方面的比较。

在maven jetty 7插件中启用调试日志记录

我正在运行一个带有简单mvn jetty:run的java webapp mvn jetty:run ,使用最新的jetty插件,但我似乎找不到告诉jetty将DEBUG消息输出到控制台的方法(对于嵌入式jetty实例,而不是插件本身)。 它目前只输出WARN和INFO消息。 我试过设置-DDEBUG和-DVERBOSE ,但他们什么也没做。 我已经看过文档 ,但它似乎没有涵盖这一点。

更改Jetty默认端口

Jetty默认端口是8080,但我想将默认端口更改为其他端口(9999)。 我读了一些教程,他们说几乎所有的配置信息默认都保存在文件jetty.xml ,这个文件位于$JETTY_HOME/etc/ 。 然后,将属性jetty.port更改为9999.但是,当我打开该文件时,我在jetty.xml找不到jetty.port属性。 我目前正在使用Jetty-9.2.1,端口是8080。 我在jetty-http.xml文件下找到了jetty.port属性。 即使我在jetty-http.xml文件中将端口更改为8090,Jetty仍然在端口8080上运行。 的jetty.xml <!– uncomment to change type of threadpool –> false https 512 <!– Uncomment to enable handling of X-Forwarded- style headers –> true 5000 docker,http.xml 我还被建议使用集成测试来配置Jetty以使用其他端口。 项目中有一个integration-tests.properties文件。 也许解决方案是在这个文件中将jetty.port设置为9999? integration-tests.properties: host = localhost port = 9999

如何使用嵌入式jetty添加servletfilter

我正在将jetty嵌入到我的应用程序中,并试图找出如何添加servletfilter(用于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()), “/”); 我在此发现的唯一信息是一个论坛post,建议有关此文档的文档需要改进。

Apache Camel Http和SSL

我一直试图让一个双向的ssl / https代理与Camel一起工作。 我已经能够使用双向ssl设置Jetty组件,现在我正在尝试使用Http4组件来完成代理的客户端。 当我将docker流量路由到日志组件时,一切都很顺利,2路ssl信任链也没问题。 当我抛出Http4组件时,它会爆发一个未经过身份validation的对等exception。 我使用的是Camel 2.7.0 这是我到目前为止所拥有的 public static void main(String[] args) throws Exception { CamelContext context = new DefaultCamelContext(); JettyHttpComponent jetty = context.getComponent(“jetty”, JettyHttpComponent.class); SslSelectChannelConnector sslConnector = new SslSelectChannelConnector(); sslConnector.setPort(9443); sslConnector.setKeystore(“/home/brian/jboss.keystore”); sslConnector.setKeyPassword(“changeit”); sslConnector.setTruststore(“/home/brian/jboss.truststore”); sslConnector.setTrustPassword(“changeit”); sslConnector.setPassword(“changeit”); sslConnector.setNeedClientAuth(true); Map connectors = new HashMap(); connectors.put(9443, sslConnector); jetty.setSslSocketConnectors(connectors); final Endpoint jettyEndpoint = jetty.createEndpoint(“jetty:https://localhost:9443/service”); KeyStore keystore = […]

如何在Jetty上的Spring应用程序中将jsessionid cookie路径更改为服务器根目录?

我有一个在/app上下文中运行Spring应用程序的Jetty服务器。 该应用程序使用会话,因此它设置会话cookie,响应如下: set-cookie:JSESSIONID=679b6291-d1cc-47be-bbf6-7ec75214f4e5; Path=/app; HttpOnly 我需要cookie来获取/替代webapp的上下文的路径。 另外,我想使用安全的cookie。 我想要这个回复: set-cookie:JSESSIONID=679b6291-d1cc-47be-bbf6-7ec75214f4e5; Path=/; HttpOnly; Secure 配置会话cookie的适当位置在哪里? spring有助于此吗? 它应该在web.xml吗? 或者我是否需要以特定于容器的方式配置它,例如jetty-web.xml ? 我尝试了很多东西,但到目前为止还没有任何工作。 以下是我尝试过的一些事情。 尝试#1 使用以下内容创建了WEB-INF/jetty-web.xml : MYJETTYSESSION / true true 这会导致抛出exception: 2012-10-05 02:41:41.180:WARN:oejx.XmlConfiguration:Config error at / java.lang.NoSuchMethodException: class org.eclipse.jetty.server.session.HashSessionManager.setSessionPath(class java.lang.String) 2012-10-05 02:41:41.180:WARN:oejx.XmlConfiguration:Config error at MYJETTYSESSION/truetrue java.lang.NoSuchMethodException: class org.eclipse.jetty.server.session.HashSessionManager.setSessionPath(class java.lang.String) 2012-10-05 02:41:41.180:WARN:oejx.XmlConfiguration:Config error at MYJETTYSESSION/truetrue java.lang.NoSuchMethodException: class 完整的堆栈跟踪就在这个要点中 。 尝试#2 […]

如何使用jetty.port覆盖jetty.xml

我正在使用maven-jetty-plugin并尝试使用-Djetty.port = 8090覆盖我的jetty.xml设置但它无法正常工作。 只有当我从jetty.xml文件中删除连接器部分时,我才能将端口设置为8090。 所以: mvn jetty:run -Djetty.port=8090 连接器从端口8080开始 没有连接器在端口8090中启动 问题是我需要配置接受器,统计和其他东西。 我尝试只从连接器中删除端口,但它不起作用。 我在用着: JAVA 1.7_05 MAVEN 3.0.4 Jetty 8.1.4 Linux Ubuntu 12.04 64bits 这是我的pom.xml插件配置: org.mortbay.jetty jetty-maven-plugin 8.1.4.v20120524 foo 9990 src/main/webapp/WEB-INF/jetty.xml start-jetty <!– pre-integration-test –> run 0 stop-jetty <!– post-integration-test –> stop Jetty.xml连接器conf: 300000 4 false 8443 20000 5000 提前致谢! 更新1:还尝试在jetty.xml中使用SystemProperty而不是Property。 不工作

在jetty启动时抛出奇怪的java.lang.ArrayIndexOutOfBoundsException

每当我部署jetty应用程序时,我都遇到了这个问题。 看起来有些jar或类坏了。 同事编译完全相同的代码,没有遇到问题。 即使部署到同一台计算机。 (我们使用git和maven ) 删除本地maven存储库~/.m2并重建没有帮助。 可以在本地运行相同的docker应用程序没有任何问题 我最初的怀疑是有些jar坏了。 试过jar tvf $every_jar并没有找到任何东西。 任何想法如何调试这个? 看起来真的很神秘,我怀疑是有些文件被破坏了。 Stack trace: 2014-10-21 13:29:25.123:WARN:oejw.WebAppContext:Failed startup of context oejwWebAppContext{/,file:/XYZ/},/XYZ/webapps/root javax.servlet.ServletException: jersey-serlvet at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:553) at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:344) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:791) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:39) at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186) at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:494) at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:141) at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:145) at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:56) at […]

Jetty在多部分表单请求上抛出“多部分请求的缺少内容”

我正在使用servlet-api 3.0.1(javax.servlet:javax.servlet-api:3.0.1)运行Jetty 9(jetty-9.0.5.v20130815)服务器,我的servlet配置为接受多部分请求。 web.xml – restapi org.springframework.web.servlet.DispatcherServlet 1 8428800 8428800 1048576 applicationContext.xml – 它实现了一个POST命令,它应该通过HttpServletRequest接收文件上传。 但是当调用request.getParts()时,会发生以下exception: java.io.IOException: Missing content for multipart request at org.eclipse.jetty.util.MultiPartInputStreamParser.parse(MultiPartInputStreamParser.java:493) at org.eclipse.jetty.util.MultiPartInputStreamParser.getParts(MultiPartInputStreamParser.java:401) at org.eclipse.jetty.server.Request.getParts(Request.java:2077) at javax.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:351) at javax.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:351) 客户端是使用ASIFormDataRequest的iOS应用程序,但我不认为客户端有问题,因为它曾经使用过Apache commons-fileupload.jar。 我没有切换服务器使用Jetty的多部分支持来接收文件。 这是请求,由代理拦截 – POST /mycommand HTTP/1.1 Host: localhost:8080 Proxy-Connection: close Accept-Encoding: gzip Content-Type: multipart/form-data; charset=utf-8; boundary=0xKhTmLbOuNdArY-849F4DA3-85DC-46F1-B182-44257808F0B9 Content-Length: 1568 Connection: close –0xKhTmLbOuNdArY-849F4DA3-85DC-46F1-B182-44257808F0B9 Content-Disposition: […]

如何从局域网访问jetty服务器?

我正在尝试使用192.168.0.6:8080(A的IP)从局域网上的另一台机器(B)访问Web应用程序(在我的机器(A)上的jetty8中部署),但它无法正常工作。 虽然我可以通过使用192.168.0.5(B的IP)从A访问机器B上的AppServ上托管的应用程序。 我可以在机器A上的localhost:8080上正常访问该应用程序。 我可以保证没有网络问题,但由于某种原因无法通过网络访问docker。 是否有任何特定配置可通过LAN访问? 我的应用程序是Maven项目,我从eclipse运行它,设置在web.xml和pom.xml中。