首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在IKVM上运行Jetty?

如何在IKVM上运行Jetty?
EN

Stack Overflow用户
提问于 2011-06-11 00:47:59
回答 2查看 1.1K关注 0票数 1

我是码头新手。我想和IKVM一起经营Jetty。但是,它会引发异常。我不知道该怎么办。

代码语言:javascript
复制
alex@AlexUbuntu:/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

似乎我需要安装一些外部库才能使其工作。但我需要安装什么。

环境清新清洁:

代码语言:javascript
复制
Ubuntu 11.04
IKVM 0.40.0.1
Java 1.6.0_22
Mono 2.6.7

2010年6月28日最新消息

我想我让它成功了。但我还没有尝试在jetty中加载.NET类。顺便说一句,我使用了一个肮脏的方法,我用/usr/bin/java/usr/lib/jvm/default-jvm/java替换了ikvm.exe。所以每次我输入java时,实际上就是IKVM。

我将尝试在jetty中加载.NET类。但是我对码头不熟悉,所以我可以找个时间坐下来。

2010年7月1日最新消息

我尝试过加载一个.NET类。然而,最后我得到了一条错误消息。

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2011-06-11 01:06:35

你能用'java -jar start.jar‘运行Jetty吗?

我怀疑jetty至少需要几个基本JAR文件,即使它是类加载器动态加载所需的所有内容。看起来它在日志初始化中失败了。

在运行IKVM时,将xerces JAR文件添加到类路径。

代码语言:javascript
复制
 ikvm -cp .:xerces.jar -jar startup.jar

更新

我只是浏览了一下jetty.sh,脚本文件设置了一些东西。您需要查看该文件并确定需要从其中提取哪些内容,或者用ikvm替换所有java实例,并注意Jetty也使用tools.jar

票数 0
EN

Stack Overflow用户

发布于 2011-08-02 18:09:19

您使用ikvmstub生成的jar文件只用于java编译器,而不是运行时。java编译器也不能使用.NET dll。对于运行时,需要直接使用dll。

我们使用IKVM的jetty没有问题,但是我们使用了一个更新的版本0.46。最简单的方法是使用共享类加载器一步构建所有jar文件。有关细节,请参阅ikvm wiki

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6313354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档