未配置嵌入式Jetty Web服务器JSP支持

我目前将Jetty嵌入到应用程序中。Jetty服务器启动,我可以在项目中看到文件,但是当我尝试查看JSP文件时,它说

HTTP错误500

访问/web/index.jsp时出现问题。原因:

未配置JSP支持

我在这里还阅读了其他一些文章,并在线阅读了一些教程,其中大多数都谈论start.jar和maven。我没有使用这两种方法中的任何一种,而只是使用了eclipse中内置的功能。

我有三节课

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文件。

希望这对其他人有帮助。

以上是 未配置嵌入式Jetty Web服务器JSP支持 的全部内容, 来源链接: utcz.com/qa/398831.html

回到顶部