2017-05-24 8 views
1

IBM jdk 1.6.0_26でRestletバージョン2.2.0を使用していますが、RESTサービスを実装しようとしています。私は次のエラーを取得しています私のテストプロジェクト実行中:Restletバージョン2.2 java.lang.NoSuchMethodError:javax/xml/stream/XMLInputFactory.newFactory()

Starting the internal [HTTP/1.1] server on port 8080 
Server started ... 
An exception occured writing the response entity 

java.lang.NoSuchMethodError: javax/xml/stream/XMLInputFactory.newFactory()Ljavax/xml/stream/XMLInputFactory; 
    at org.restlet.ext.jackson.JacksonRepresentation.createObjectMapper(JacksonRepresentation.java:215) 
    at org.restlet.ext.jackson.JacksonRepresentation.getObjectMapper(JacksonRepresentation.java:333) 
    at org.restlet.ext.jackson.JacksonRepresentation.createObjectWriter(JacksonRepresentation.java:277) 
    at org.restlet.ext.jackson.JacksonRepresentation.getObjectWriter(JacksonRepresentation.java:361) 
    at org.restlet.ext.jackson.JacksonRepresentation.write(JacksonRepresentation.java:474) 
    at org.restlet.engine.adapter.ServerCall.writeResponseBody(ServerCall.java:519) 
    at org.restlet.engine.adapter.ServerCall.sendResponse(ServerCall.java:463) 
    at org.restlet.engine.adapter.ServerAdapter.commit(ServerAdapter.java:196) 
    at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:153) 
    at org.restlet.engine.connector.HttpServerHelper$1.handle(HttpServerHelper.java:73) 
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) 
    at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:77) 
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80) 
    at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:567) 
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) 
    at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:539) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) 
    at java.lang.Thread.run(Thread.java:737) 
Unable to send error response 

java.io.IOException: headers already sent 
    at sun.net.httpserver.ExchangeImpl.sendResponseHeaders(ExchangeImpl.java:180) 
    at sun.net.httpserver.HttpExchangeImpl.sendResponseHeaders(HttpExchangeImpl.java:80) 
    at org.restlet.engine.connector.HttpExchangeCall.writeResponseHead(HttpExchangeCall.java:157) 
    at org.restlet.engine.adapter.ServerCall.sendResponse(ServerCall.java:459) 
    at org.restlet.engine.adapter.ServerAdapter.commit(ServerAdapter.java:214) 
    at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:153) 
    at org.restlet.engine.connector.HttpServerHelper$1.handle(HttpServerHelper.java:73) 
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) 
    at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:77) 
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80) 
    at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:567) 
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) 
    at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:539) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) 
    at java.lang.Thread.run(Thread.java:737) 

を日/オラクル1.6 JDKを使用している間に問題は存在しませんが、私は IBMのJDK 1.6.0_26に滞在する必要があります。

ご協力いただければ幸いです。

おかげで、 EHA

+0

restletとjavax-xmlの互換性のないjarのようです – Jens

答えて

0

それはおそらく2つのJDKの間にフォールバックJAXPの選択に問題があります。 -Djaxp.debug=1でjavaを実行し、ログを見てください。私は現在、これと同じ問題に遭遇したことだし、私のログには、私は私の問題は、OSGiの関連していることをかなり確信している

JAXP: find factoryId =javax.xml.parsers.SAXParserFactory 
JAXP: loaded from fallback value: com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl 
JAXP: created new instance of class com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl using ClassLoader: null 

を示しています。類似の結果になる可能性のある別の質問へのリンクは次のとおりです。Unable to find a factory for http://www.w3.org/2001/XMLSchema

関連する問題