我将基于Wicket的应用程序的.war文件部署到Jetty 7.0.2.问题是Jetty将类路径复制到临时目录,但只复制*.class,因此*.html不可用于类加载器,我得到错误:
WicketMessage:未找到组件'cz.dynawest.wicket.chat.ChatPage'的'html'类型标记.
将战争复制为扩展目录有帮助.不过,我想知道如何配置Jetty来复制一切.
而且,mvn jetty:run
我得到了同样的错误.
谢谢,Ondra
当我尝试在Jetty上运行我的项目时,我遇到了这个异常:
java.lang.ClassNotFoundException:默认
完整堆栈:
Launching Jetty with port 8080, context / and webapp path src/main/webapp
2011-07-19 16:49:56.832:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
2011-07-19 16:49:56.841:INFO::jetty-6.1.26
2011-07-19 16:49:57.181:WARN::EXCEPTION
java.lang.ClassNotFoundException: Default
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401)
at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363)
at org.mortbay.util.Loader.loadClass(Loader.java:91)
at org.mortbay.util.Loader.loadClass(Loader.java:71)
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:736)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at net.sourceforge.eclipsejetty.launch.JettyLauncherMain.launch(JettyLauncherMain.java:67)
at net.sourceforge.eclipsejetty.launch.JettyLauncherMain.main(JettyLauncherMain.java:50) …
Run Code Online (Sandbox Code Playgroud) 我使用Java套接字创建了一个代理服务器(Fwd和Reverse).
这将听取在浏览器中配置的8080上的传入请求并将它们转发到另一个Proxy Server2.
并读取server2发送的响应并将其写入浏览器.
同时代码将记录请求和响应,并阻止某些预定义的请求类型来自浏览器.
现在我想使用Jetty执行此操作,并且还支持HTTPS请求.
我搜索了一些例子,但没有找到.
这启动服务器在8080,我已在浏览器的代理设置中配置为代理端口.
import org.eclipse.jetty.server.Server;
import Handler.HelloHandler;
public class StartJetty
{
public static void main(String[] args) throws Exception
{
Server server = new Server(8080);
server.setHandler(new HelloHandler());
server.start();
server.join();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我用来监听请求并将响应写回浏览器的处理程序.
package Handler;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
public class HelloHandler extends AbstractHandler
{
final String _greeting;
final String _body;
public HelloHandler()
{
_greeting="Hello World";
_body=null;
}
public HelloHandler(String greeting)
{
_greeting=greeting;
_body=null;
}
public HelloHandler(String greeting,String body) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Jersey从我的Jetty服务器获取一个简单的JSON格式对象.
我一直收到错误:
SEVERE: A message body writer for Java class my.package.resources.Album, and Java type class my.package.resources.Album, and MIME media type application/json was not found
Run Code Online (Sandbox Code Playgroud)
一个问题是我不确定将POJOMappingFeature放在Jetty的哪个位置,我尝试了以下但是没有更改错误:
myServletHolder.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");
Run Code Online (Sandbox Code Playgroud)
和
myServletContextHandler.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");
Run Code Online (Sandbox Code Playgroud)
我知道Jersey的基本REST功能正在运行,因为在我尝试使用JSON输出之前我使用了纯文本并且它工作得很好.
我正在尝试使用嵌入式实例运行我的spring MVC.我发现了这个问题:Jetty Embedded Spring应用程序
我使用的是jetty版本:7.6.2.v20120308,javax servlet:2.5
我正在使用IntelliJ,类WebAppContext似乎没有解析为任何包/命名空间.这个类是存在还是被替换了?
import org.eclipse.jetty.server.Server;
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
WebAppContext ????????
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用org.codehaus.jackson.map.deser.std.StdDeserializer
自定义反序列化.
我的主要目标是能够连接到Jetty的JSON处理结构并使用Jackson而不是默认的JettyJSON.
所以现在,我正在测试是否有效.
我有一个测试,试图读取一个简单的JSON字符串并将其转换为Presence对象.
public void testBasicJson() throws JsonParseException,
JsonMappingException,
IOException {
ObjectMapper mapper = new ObjectMapper();
JsonObjectDeserializer jod = new JsonObjectDeserializer();
SimpleModule module = new SimpleModule("JsonObjectDeserializer",
new Version(1, 0, 0, null));
module.addDeserializer(JsonObject.class, jod);
mapper.registerModule(module);
//formatted for easy reading
String jsonSimple = "{
\"userEmail\":\"user1@lab.com\",
\"type\":\"presence\",
\"domain\":\"lab.com\"
}";
JsonObject pres = mapper.readValue(jsonSimple, JsonObject.class);
System.out.println(pres.toString());
}
Run Code Online (Sandbox Code Playgroud)
Presence类是:
public class Presence extends JsonObject {
private static final long serialVersionUID = 1L;
protected String userEmail;
protected String domain;
protected String type;
public …
Run Code Online (Sandbox Code Playgroud) 编辑:解决方案是将所有与phatomJS相关的脚本放入Scripts目录,并确保没有任何项目是Windows的只读.我的脚本和phantomjs.exe都存在于:C:\jetty-distribution-9.0.0.M3\webapps\ROOT\Scripts\phantomjs
.
该app.properties
文件具有以下配置:
# location of the phantomjs executable, could be for example /usr/local/bin/phantomjs
exec = C:/jetty-distribution-9.0.0.M3/webapps/ROOT/Scripts/phantomjs/phantomjs.exe
# location of convert script used by phantomjs, optional to leave the script property empty, than it's using the script located in: /WEB-INF/phantomjs/highcharts-convert.js. This is tested in TOMCAT, but specify a path if resource loading isn't working with the classloader (f.e. with Jetty server), script = a/path/to/my/phantomjs-script.js
script = C:/jetty-distribution-9.0.0.M3/webapps/ROOT/Scripts/phantomjs/highcharts-convert.js
Run Code Online (Sandbox Code Playgroud)
我现在可以通过这里加载的demo导出http://localhost:8080/highcharts-export/demo
,也可以通过我们的网站使用它来调用它url: 'http://localhost:8080/highcharts-export/'
编辑: 有没有人有一个工作的app.properties文件在Windows和Jetty下工作?
我通过对app.properties进行此修改来解决下面列出的一些问题:
# …
Run Code Online (Sandbox Code Playgroud) 我最近开始开发rest apis并且偶然发现了这些条款 - jetty,jackson&jersey.我在普通日食时使用球衣成功开发了休息api.
我相信jackson是为了促进xml/java对象的反序列化和序列化.但它是什么 - 它只是一个jar文件的集合? - 如果是的话,如果我已经在使用jersey框架(如果我的apis处理xmls),我可以/我应该同时使用它吗?
同样,什么即Jetty - 我下载它并看到了很多文件夹和文件 - 而且它们不仅仅是罐子的集合!如果它是一个框架,我可以在球衣上使用它吗?如果是的话,它看起来很重 - 我认为处理HTML内容可能只是几个罐子.但看起来还有很多东西.
如果我的apis处理所有媒体类型,这三件事情是否可以一起使用?如果是,那么最好的方法是什么?
谢谢.
我们正在制作HTTP Rest API服务器,我们希望它服务于大约300K并发请求.我们可以为此目的使用哪些好的Web服务器?关于他们的限制的一些信息.并发请求会很棒.
两周前,Java EE 8发布了.并宣布新的Tomcat 9支持它.Jetty是否有计划支持Java EE8?我在文档或Jetty站点上找不到任何相关信息.
谢谢.