2011-09-05 2 views
2

부두 서버를 자바 앱에 임베드하는 데 어려움을 겪고 있습니다.부두 부두 서버 문제 포함

0 [main] INFO test.Server - Starting server in 'c:/workspace/test/war/' on port 9090 
34615 [main] INFO test.Server - Using resource base: src/main/webapp 
34615 [main] INFO test.Server - Using descriptor file: src/main/webapp/WEB-INF/web.xml 
2011-09-05 12:29:36.961:INFO::Logging to STDERR via org.mortbay.log.StdErrLog 
36344 [main] INFO test.Server - Starting Server! 
2011-09-05 12:29:37.023:INFO::jetty-6.1H.22 
2011-09-05 12:29:37.039:WARN::Failed startup of context [email protected]{/TestServer,file:/C:/workspace/test/war/src/main/webapp/} 
java.lang.ClassNotFoundException: org.mortbay.jetty.plus.webapp.EnvConfiguration 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at org.mortbay.util.Loader.loadClass(Loader.java:91) 
    at org.mortbay.util.Loader.loadClass(Loader.java:71) 
    at org.mortbay.jetty.webapp.WebAppContext.loadConfigurations(WebAppContext.java:859) 
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:431) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.jetty.Server.doStart(Server.java:224) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at test.Server.main(Server.java:84) 
2011-09-05 12:29:37.054:INFO::Started [email protected]:9090 

문제는 내 길 물건의 일부가 될 것 같다 ...하지만 서버를 시작할 때 나는이 문제를 얻을 - 나는 실제 개체를 구성하는 스프링을 사용하고 난 웹 애플리케이션을 아무런 문제를 만들 수 있습니다. 용맹 한 디렉토리 구조 (무엇을 받는다는는 '권장') 앞으로 똑바로 -

작업 공간/테스트/전쟁/ -src/주/자바/테스트/Server.java -src/주/웹 애플리케이션/WEB-INF /web.xml

그 외에도 web.xml에 설치되어있는 spring stuff에 해당하는 것 외에는 (Tomcat을 통해) true로 시도되었습니다.

svrLogger.info ("Starting server in '" + home + "' on port " + port); 

String rsrcBase = "src/main/webapp"; 
String webXml = rsrcBase + "/WEB-INF/web.xml"; 

svrLogger.info ("Using resource base: " + rsrcBase); 
svrLogger.info ("Using descriptor file: " + webXml); 

Server server = new Server(port); 
WebAppContext webapp = new WebAppContext(); 

webapp.setContextPath ("/TestServer"); 
webapp.setDescriptor (home + "/" + webXml); 
webapp.setResourceBase (home + "/" + rsrcBase); 
webapp.setParentLoaderPriority (true); 
server.setHandler(webapp); 

svrLogger.info ("Starting Server!"); 
server.start(); 
server.join(); 
svrLogger.info ("Joined and exiting"); 

어떤 도움이 잘 ... 도움 :

주에서 관련 코드는이 (그렇지 않으면 속성 쓰레기입니다)입니다. 이것은 내가 내 자신의 웹 서버를 만들려고 한 것은 이번이 처음이다 (그래서 다른 조언도 환영!)

+2

jetty-plus.jar을 클래스 경로에 추가해보십시오. 왜 org.mortbay.jetty.plus.webapp.EnvConfiguration이 필요한지 잘 모르겠습니다. – gawi

+0

어리석은 질문을하고 싶지만, Java 애플리케이션에 Jetty를 임베드하려면 왜 web.xml이 필요합니까? 임베디드 jetty를 사용하고 서버를 시작하십시오. – Cratylus

+0

이 경우 웹 애플리케이션 아키텍처를 사용해야합니다 - 웹 응용 프로그램에 일부 설명자가 필요합니다. – rybit

답변

2

시도가 구성되지 부두 JNDI에 있기 때문에이 클래스를로드하려고

<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-jndi</artifactId> 
    <version>${jetty.version}</version> 
</dependency> 

포함 기본적으로.

이 부두

https://jersey.java.net/documentation/latest/index.html

행운을 빕니다에 대한 자세한 내용을 배울 수있는 좋은 자원이다!