我目前将Jetty嵌入到应用程序中。Jetty服务器启动,我可以在项目中看到文件,但是当我尝试查看JSP文件时,它说
HTTP错误500 访问/web/index.jsp时出现问题。原因: 未配置JSP支持
我在这里还阅读了其他一些文章,并在线阅读了一些教程,其中大多数都谈论start.jar和maven。我没有使用这两种方法中的任何一种,而只是使用了eclipse中内置的功能。
我有三节课
AppContextBuilder
public class AppContextBuilder { private WebAppContext webAppContext; public WebAppContext buildWebAppContext() { webAppContext = new WebAppContext(); webAppContext.setDescriptor( webAppContext + "/WEB-INF/web.xml" ); webAppContext.setResourceBase( "." ); webAppContext.setContextPath( "/" ); return webAppContext; }
码头服务器
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandlerCollection; public class JettyServer { private Server server; public JettyServer() { this( 8585 ); } public JettyServer(Integer runningPort) { server = new Server( runningPort ); } public void setHandler( ContextHandlerCollection contexts ) { server.setHandler( contexts ); } public void start() throws Exception { server.start(); } public void stop() throws Exception { server.stop(); server.join(); } public boolean isStarted() { return server.isStarted(); } public boolean isStopped() { return server.isStopped(); } }
服务器控件
import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.handler.ContextHandlerCollection; public class ServerControl { public static void main( String[] args ) { Logger.getLogger().logMethodEntryMessage(); ContextHandlerCollection contexts = new ContextHandlerCollection(); contexts.setHandlers( new Handler[] { new AppContextBuilder().buildWebAppContext() } ); final JettyServer jettyServer = new JettyServer(); jettyServer.setHandler( contexts ); start( jettyServer ); Logger.getLogger().logMethodExitMessage(); } private static void start( final JettyServer jettyServer ) { Logger.getLogger().logMethodEntryMessage(); try { jettyServer.start(); Logger.getLogger().debug( "Jetty server started!" ); } catch( Exception e ) { Logger.getLogger().error( e.getMessage() ); } Logger.getLogger().logMethodExitMessage(); } }
我以前从未尝试过使用码头嵌入式设备,因此我可能会丢失一些东西。我在网上在线阅读了本教程,它似乎对他们有用。
任何帮助将是巨大的,谢谢!
设法解决这个问题。
我要做的就是创建一个WAR,然后将以下代码行添加到WebBuilderContext类中。
webAppContext.setExtractWAR( true ); webAppContext.setWar( "path/to/your/war/file/here" );
我正在使用ANT进行构建,因此每次添加时都只需添加一个新的WAR目标即可生成WAR文件。
希望这对其他人有帮助。