我正在尝试使用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) 我正在实现一个Jetty Websocket servlet.当服务器收到新连接时,我想发送一条消息,该消息将由websocket的onopen函数读取.我希望此消息仅在打开期间发送,而不是使用常规connection.SendMessage()函数.有可能吗?如何?
我使用ContextAppProvider在jetty 8.1.4中部署了多个战争.我们想要指定战争应用程序的部署顺序,因为我们有一些战争依赖于其他战争.
那么如何在jetty中设置特定的部署顺序
我想在我的Spring 3.1 Web应用程序中提供自定义404错误页面,但我无法停用Jetty 8的默认404错误页面.
开箱即用的Jetty 8提供了一个默认的404错误页面:当访问Jetty托管的网站,并提供一个不由任何servlet处理的URL路径时(例如通过访问http://www.example.com/nonexisting),Jetty响应有自己的默认HTML错误页面:
HTTP ERROR 404
Problem accessing /nonexisting. Reason:
Not Found
Powered by Jetty://
Run Code Online (Sandbox Code Playgroud)
要替换此默认行为,
DefaultHandler从我的码头XML文件,web.xml的包括指向的Servlet 2.5和Servlet 3.0错误处理程序位置/error,@Controller处理请求的人/error,但我的网站仍然返回Jetty自己的默认HTML错误页面.
Jetty 8的官方文档讨论了如何设置"自定义错误页面",但有人建议
@Controller,如上所述)/URI 的"根"Web应用程序." (我不想这样做,因为我web.xml已经将Spring MVC映射DispatcherServlet到/.如何关闭Jetty的默认错误处理程序并按照上面的指示完成错误处理?
我想知道当多个依赖路径可以导致同一个类时jetty如何处理.
例如,
Jetty预装了JSTL-1.2,但我添加了一个依赖项来加载JSTL-1.2.4.在编译时,如果我在断点测试它在eclipse中下载源代码,它会在1.2.4版本中断.
我想知道哪个版本将被传递以生成JSP的字节代码,当有两个版本的类时,比如依赖一些基类JstlCoreTlv(一个预打包,即带有jetty的JSTL 1.2和一个从maven依赖传递的基类)1.2.4)
简而言之,我想知道码头是如何做到的.我想知道jetty如何优先考虑预先打包和后来添加的依赖项.即使版本比预先打包的版本旧,它是否会覆盖并引用添加的依赖项?
在这方面我从码头文件中得不到多少.非常感谢帮助
它决定部署一个应用程序到Jetty 8,之前使用的是Tomcat 7. Jetty 8正在使用默认值,似乎工作正常,但随后偶尔等待连接,看着jetty.xml我很困惑关于线程和连接器之间的相互作用.
但一般的问题是,默认设置是否适用于负载很重的Web应用程序,还是需要进行明显的更改?
更新 让我尝试更具体地说明这一点.
在jetty.xml中,它表示maxThreads = 200,因此它理论上可以并行处理200个请求(比我们必须处理的要多),但是有一个关于应该配置多少内存jetty的经验法则.
它还定义了一个SelectChannelConnector连接器,我认为这是接收请求并将它们移植到线程的东西.这个连接器是我们可用的最佳性能吗?
在Jetty的主项目页面上提到了与JASPI(JASPIC/JSR 196)的兼容性.
但是,Jetty 8的分发似乎不包含任何与JASPI相关的类.jetty-security-8.1.8.v20121106.jar[jetty home]/lib中有一个jar,但是这个jar不包含任何JASPIC/JASPI类型.
Jetty wiki上有关JASPIC/JASPI的文档只是一个占位符,不包含任何信息.
一些谷歌搜索后,我发现在Eclipse网站的JavaDoc,发现应该有一个 码头,jaspi-8.1.8.v20121106.jar 地方.这些JavaDocs也包含在发行版中.最后,一个码头jaspi回购出现在Github.
显然有一些可用的支持,但为什么这些类似乎不存在于Jetty发行版中,以及有关如何配置它的文档在哪里?我错过了什么?
我们目前正在将Jetty 8用于提供低延迟流量的生产环境.我们想知道如果我们有一个非常低的延迟要求,那么迁移到码头9会有什么好处.
谢谢!
在我的一个项目中,我使用了 Lift 2.5 M4 和 Scala 2.10.0。在这个项目中,我使用的是Jetty 8.1.10.v20130312。但是在通过 mvn jetty 运行项目时,我遇到了意外的异常。
我已经通过以下方式在 pom.xml 中配置了 jetty 插件:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.10.v20130312</version>
<configuration>
<systemProperties>
<systemProperty>
<name>org.apache.cocoon.log4j.loglevel</name>
<value>WARN</value>
</systemProperty>
</systemProperties>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>9090</port>
<maxIdleTime>30000</maxIdleTime>
</connector>
</connectors>
<webApp>
<contextPath>/</contextPath>
</webApp>
<scanIntervalSeconds>0</scanIntervalSeconds>
<stopKey>stop</stopKey>
<stopPort>9999</stopPort>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我在运行命令时遇到以下异常:- mvn org.mortbay.jetty:jetty-maven-plugin:run
2013-04-24 06:49:39.216:警告:oeja.AnnotationParser:异常java.io.FileNotFoundException:/home/ayush/scala-lift/knolgame/target/classes/com/knolgame/lib/TransactionStatus$$anonfun$在 java.io.FileInputStream.open(本机方法) 处找到 $1.class (打开的文件太多) 在 java.io.FileInputStream.(FileInputStream.java:106) 处 org.eclipse.jetty.util.resource.FileResource.getInputStream (FileResource.java:286)在org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:754)在org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747)在org.eclipse。 jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747) 在 org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747) 在 org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:第747章)
但是当我使用jetty 6.1.25时,它工作正常。
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.25</version>
<configuration>
<systemProperties>
<systemProperty>
<name>org.apache.cocoon.log4j.loglevel</name>
<value>WARN</value>
</systemProperty>
</systemProperties>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>9090</port>
<maxIdleTime>30000</maxIdleTime>
</connector> …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用jetty上下文配置(配置放在$ JETTY_HOME/context /中).我正在尝试配置一个ContextHandler负责提供静态文件作为一个ine javadoc.xml.我的配置文件是这样的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.eclipse.org/configure.dtd">
<!--
Configure a custom context for serving javadoc as static resources
-->
<Configure class="org.eclipse.jetty.server.handler.ContextHandler">
<Set name="contextPath">/*/html</Set>
<Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/html/</Set>
<Set name="handler">
<New class="org.eclipse.jetty.server.handler.ResourceHandler">
<Set name="welcomeFiles">
<Array type="String">
<Item>index.html</Item>
</Array>
</Set>
<Set name="cacheControl">max-age=3600,public</Set>
</New>
</Set>
</Configure>
Run Code Online (Sandbox Code Playgroud)
我想要的是能够服务于/*/html /之类的任何路径,但这不会响应像/ foo/html这样的调用.
如何配置服务器的路径,如/ foo/html/bar/html/baz/html?如果我设置上下文路径
<Set name="contextPath">/foo/html</Set><!--this one works -->
<Set name="contextPath">/bar/html</Set> <!-- this one works -->
<Set name="contextPath">/baz/html</Set> <!-- this one works -->
<Set name="contextPath">/*/html</Set> …Run Code Online (Sandbox Code Playgroud) jetty-8 ×10
jetty ×9
java ×5
spring-mvc ×2
default ×1
deployment ×1
html5 ×1
jaspic ×1
java-ee ×1
jstl ×1
maven ×1
performance ×1
web.xml ×1
websocket ×1