gpt4 book ai didi

java - 未配置嵌入式 jetty web 服务器 JSP 支持

转载 作者:行者123 更新时间:2023-12-01 11:55:28 24 4
gpt4 key购买 nike

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

HTTP ERROR 500
Problem accessing /web/index.jsp. Reason:
JSP support not configured

我在这里阅读了一些其他帖子和一些在线教程,其中大多数都讨论了 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;
}

Jetty服务器

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();
}

}

我以前从未尝试过使用嵌入的jetty,所以我可能会遗漏一些东西。我关注了this不过在线教程似乎对他们有用。

任何帮助都会很棒,谢谢!

最佳答案

设法解决这个问题。

我所要做的就是创建一个 WAR,然后将以下代码行添加到 WebBuilderContext 类中。

webAppContext.setExtractWAR( true );    
webAppContext.setWar( "path/to/your/war/file/here" );

我在构建中使用 ANT,因此只需添加一个新的 WAR 目标即可在每次构建时生成 WAR 文件。

希望这对其他人有帮助。

关于java - 未配置嵌入式 jetty web 服务器 JSP 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com