[英]Embedded jetty webserver JSP support not configured
我目前将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;
}
JettyServer
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();
}
}
ServerControl
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();
}
}
我以前从未尝试过使用码头嵌入式设备,因此我可能会丢失一些东西。 我在线阅读了这个教程,但它似乎对他们有效。
任何帮助都会很棒,谢谢!
如果该代码段表示您如何初始化Webapp,则您缺少许多 JSP初始化步骤。
Jetty项目生成了一个示例项目,展示了如何在嵌入式Jetty中使用JSP
https://github.com/jetty-project/embedded-jetty-jsp
注意...
(仅举几例)
管理解决这个问题。
我要做的就是创建一个WAR,然后将以下代码行添加到WebBuilderContext类中。
webAppContext.setExtractWAR( true );
webAppContext.setWar( "path/to/your/war/file/here" );
我正在使用ANT进行构建,因此每次添加时都只需添加一个新的WAR目标即可生成WAR文件。
希望这有助于其他人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.