2011-06-11 3 views
1

나는 부두에서 새로운 사람입니다. IKVM을 사용하여 Jetty를 실행하려고합니다. 그러나 예외가 발생합니다. 나는 무엇을해야하는지 잘 모르겠습니다.IKVM에서 부두를 실행하는 방법은 무엇입니까?

[email protected]:/usr/share/jetty$ ikvm -jar start.jar 
5 [main] INFO org.mortbay.log - Logging to org.slf4j.impl.SimpleLogger(org.mortbay.log) via org.mortbay.log.Slf4jLog 
java.lang.reflect.InvocationTargetException 
    at java.lang.reflect.Method.invoke(Method.java: 
    at org.mortbay.start.Main.invokeMain(Main.java:179) 
    at org.mortbay.start.Main.start(Main.java:508) 
    at org.mortbay.start.Main.start(Main.java:439) 
    at org.mortbay.start.Main.main(Main.java:99) 
Caused by: cli.System.TypeLoadException: Could not load type 'org.apache.xerces.util.NamespaceSupport' from assembly 'ikvm_dynamic_assembly__40326550, Version=2011.611.1039.16726, Culture=neutral, PublicKeyToken=null'. 
    at org.apache.xerces.parsers.XIncludeAwareParserConfiguration.<init>(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:517) 
    at java.lang.Class.newInstance0(Class.java:333) 
    at java.lang.Class.newInstance(Class.java:320) 
    at org.apache.xerces.parsers.ObjectFactory.newInstance(Unknown Source) 
    at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source) 
    at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source) 
    at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source) 
    at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source) 
    at org.mortbay.xml.XmlParser.setValidating(XmlParser.java) 
    at org.mortbay.xml.XmlParser.<init>(XmlParser.java:68) 
    at org.mortbay.xml.XmlConfiguration.initParser(XmlConfiguration.java) 
    at org.mortbay.xml.XmlConfiguration.<init>(XmlConfiguration.java:105) 
    at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:958) 
    ... 5 more 

작동 시키려면 외부 라이브러리를 설치해야합니다. 하지만 무엇을 설치해야합니까?

환경은 신선하고 깨끗한 :

Ubuntu 11.04 
IKVM 0.40.0.1 
Java 1.6.0_22 
Mono 2.6.7 

업데이트 2010년 6월

28 일에 나는 그것을 작동하게 생각합니다. 하지만 부두에 .NET 클래스를로드하려고하지 않았습니다. 그건 그렇고, 나는 /usr/bin/java/usr/lib/jvm/default-jvm/javaikvm.exe으로 바꾼 더러운 방법을 사용했다. 그래서 언제든지 java을 입력하면 실제로 IKVM입니다.

부두에 .NET 클래스를로드하려고 시도합니다. 그러나 저는 언젠가 걸릴 수 있도록 부두에 익숙하지 않습니다.

업데이트 7 월 1 일 2010 년

에 나는 .NET 클래스를로드하기 위해 노력했다. 그러나 마침내 오류 메시지가 나타납니다.

HTTP ERROR 500 

Problem accessing /hello/servlet. Reason: 

    ikvmstub generated stubs can only be used on IKVM.NET 
Caused by: 

java.lang.UnsatisfiedLinkError: ikvmstub generated stubs can only be used on IKVM.NET 
    at cli.CSharpClass.<init>(Unknown Source) 
    at HelloServlet.doPost(HelloServlet.java:28) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 

답변

0

'java -jar start.jar'로 Jetty를 실행할 수 있습니까?

클래스 로더가 필요한 모든 것을 동적으로로드하더라도 최소한 jetty 용 기본 JAR 파일이 필요하다고 생각합니다. 그것은 로그 초기화에 실패한 것 같습니다.

IKVM을 실행할 때 xerces JAR 파일을 클래스 경로에 추가하십시오.

ikvm -cp .:xerces.jar -jar startup.jar 

업데이트

난 그냥 jetty.sh를 통해보고하고 스크립트 파일을 설정하는 몇 가지가 있습니다. 이 파일을 통해 필요한 것을 결정하거나 java의 모든 인스턴스를 ikvm으로 바꾸고 Jetty가 tools.jar도 사용한다는 사실을 알고 있어야합니다.

+0

'java -jar start.jar'을 실행할 수 있습니다. 'ikvm -cp : : xerces.jar -jar startup.jar'도 같은 예외를 얻는다. 'jetty.sh '는'/ etc/init.d/jetty' 파일을 의미합니까? –

0

ikvmstub로 생성하는 jar 파일은 다음과 같습니다. 자바 컴파일러에만 해당되며 런타임에는 사용할 수 없습니다. 자바 컴파일러는 .NET DLL로도 작동하지 않을 수 있습니다. 런타임에는 dll을 직접 사용해야합니다.

IKVM에서 문제없이 부두를 사용하지만 최신 버전 0.46을 사용합니다. 가장 간단한 방법은 공유 클래스 로더를 사용하여 모든 jar 파일을 한 번에 빌드하는 것입니다. 자세한 내용은 ikvm wiki을 참조하십시오.

+0

답장을 보내 주셔서 감사합니다. 사실, 나는 IKVM과 Jetty에서 새롭기 때문에 내가해야 할 일을 이해하지 못한다. 그걸 나 한테 알려주시겠습니까? 대단히 고마워. –

+0

부두가 프로젝트의 일부분이기 때문에 나는 많은 시간을 들이지 않고 대답 할 수 없다. 먼저 부두는 문제가 없어야합니다. 그런 다음 필요한 모든 jar 파일을 검색 한 다음 한 줄로 컴파일합니다. – Horcrux7

관련 문제