从一个main方法启动内嵌的Jetty很简单。Jetty的文档上有详细的例子。
http://docs.codehaus.org/display/JETTY/Embedding+Jetty
现在的一个项目需要用到JNDI.把datasource和上传文件的目录保存到了jndi中这样统一了不同os和开发者间的差异。只要在大家配置同样的jndi name就不用考虑打包的问题。这是另外一种解决办法。
首先你需要再添加两个jar包。jetty-plus和jetty-naming包。少了jetty-naming报的不是no class found exception.所以一定不要忘记。直接看代码吧。其实也很简单。
public class JettyLauncher {
private static final int HTTPPORT = 8080;
private static Server server;
private static final String CONTEXT = "/web";
public static void main(String[] args) throws Exception {
server = new Server();
SocketConnector socketConnector = new SocketConnector();
socketConnector.setPort(HTTPPORT);
server.setConnectors(new Connector[] { socketConnector });
WebAppContext context = new WebAppContext("WebRoot", CONTEXT);
context.setConfigurationClasses(new String[]{"org.mortbay.jetty.webapp.WebInfConfiguration",
"org.mortbay.jetty.plus.webapp.EnvConfiguration",
"org.mortbay.jetty.plus.webapp.Configuration",
"org.mortbay.jetty.webapp.JettyWebXmlConfiguration",
"org.mortbay.jetty.webapp.TagLibConfiguration"});
new EnvEntry(context, "filesystem/root", "/var/store", true);
ComboPooledDataSource pooledDataSource = new ComboPooledDataSource();
pooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
pooledDataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/web?useUnicode=true&characterEncoding=utf8");
pooledDataSource.setUser("root");
pooledDataSource.setPassword("root");
new Resource(context, "jdbc/db", pooledDataSource);
server.addHandler(context);
server.setStopAtShutdown(true);
server.setSendServerVersion(true);
server.start();
}
}
这里你会发现jdbc/db还是找不到。而filesystem/root 这个能找到了。害得我找了好长时间。原来还需要在web.xml里添加一个<resource-ref>.
<resource-ref>
<description>DataSource Reference</description>
<res-ref-name>jdbc/51user</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
参考
- http://docs.codehaus.org/display/JETTY/JNDI
- http://docs.codehaus.org/display/JETTY/DataSource+Examples
Like others




Sunday, February 22, 2009, 11:49:05 AM (CST)
问下博主的空间是哪的???
Sunday, February 22, 2009, 12:32:00 PM (CST)
现在是放到一个朋友的服务器上的。
Friday, March 27, 2009, 09:14:14 AM (CST)
问下 myblog 有jdk 1.4的版本吗
Friday, March 27, 2009, 02:52:47 PM (CST)
to:jiuzhe
没有jdk1.4版本了。不过你可以用这个转成jdk1.4的字节码就可以使用了。
http://www.blogjava.net/calvin/archive/2006/04/27/43443.html
Sunday, June 28, 2009, 12:38:17 PM (CST)
哈哈不错,我的BLOG地址换了。http://fredchu.users.sourceforge.net/weblog/
Wednesday, December 23, 2009, 04:16:39 PM (CST)
很想认识你,我也想写一个blog系统,但又很有问题解决不了,我是个 java初学者,希望能与你交流。 我的 qq 是:gfz@w.cn 搜这个邮箱就行了,或者 发邮件也可以,期待你的消息。
Tuesday, January 05, 2010, 02:06:16 PM (CST)
文章写的不错,博主好像不更新了。
www.test21.cn
Wednesday, January 20, 2010, 11:39:57 PM (CST)
网站设计的不错,不过不能注册。。。
Tuesday, January 26, 2010, 02:25:25 PM (CST)
不错,特别是能够支持wordpress主题,你这个博客系统支持多人博客吗?类似于搜狐那种的?
Tuesday, January 26, 2010, 03:08:42 PM (CST)
你好。现在的版本还不支持。多谢关注。
Wednesday, January 27, 2010, 05:00:23 PM (CST)
多谢~
Tuesday, March 02, 2010, 02:40:02 PM (CST)
现在才上的