3

Wink 1.2 を使用して jBoss EAP 6.1 (7.2.1Final) に RESTful Web アプリケーションをデプロイすると、すべてのリクエストで次の例外が発生します。

     <b>JBWEB000070: exception</b>
            <pre>java.lang.NullPointerException
org.apache.wink.common.internal.http.Accept.valueOf(Accept.java:139)
org.apache.wink.server.internal.contexts.HttpHeadersImpl.getAcceptHeader(HttpHeadersImpl.java:152)
org.apache.wink.server.internal.contexts.HttpHeadersImpl.getAcceptableMediaTypes(HttpHeadersImpl.java:106)
org.apache.wink.server.internal.registry.ResourceRegistry.filterByProduces(ResourceRegistry.java:558)
org.apache.wink.server.internal.registry.ResourceRegistry.filterDispatchMethods(ResourceRegistry.java:482)
org.apache.wink.server.internal.registry.ResourceRegistry.findMethod(ResourceRegistry.java:359)
org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleResourceMethod(FindResourceMethodHandler.java:138)
org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:65)
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95)
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)

同じアプリケーションは、EAP 5.1 などの以前のバージョンの jBoss でも問題なく動作します。

また、tcpmon を使用して投稿されたリクエストをキャプチャし、ヘッダーで次の情報を取得しました。

    GET /hothouse-iris/Hothouse.svc/ HTTP/1.1
    Host: 127.0.0.1:9090
    Connection: keep-alive
    Authorization: Basic U1NPVVNFUjE6MTIzNDU2
    Cache-Control: no-cache
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36
    Content-Type: application/atom+xml
    Accept: */*
    Accept-Encoding: gzip,deflate,sdch
    Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
    Cookie: JSESSIONID=8D9FE5379FE7576610BB4B78A431AD10; __utma=96992031.2145502422.1381922298.1382004674.1382006170.4; __utmc=96992031; __utmz=96992031.1381922298.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

Chrome 拡張機能 POSTMan を使用してサービスをリクエストしていますが、機能しています。

4

4 に答える 4

4

問題は、Accept クラスの初期化が実際には行われず、デリゲート フィールドが null であることです。

RuntimeDelegate は、クラスパスで検索される META-INF/service/javax.ws.rs.ext.RuntimeDelegate ファイルで実装を指定する必要があるインターフェイスです。

wink-common.jar には、実装の正しいクラス名を持つそのようなサービス ファイルが含まれていますが、同じ名前の他のサービス ファイルが (jar の) クラス パス上で正しいものの前に見つかった場合、そのような奇妙なものになります。行動。

于 2014-06-25T11:37:40.290 に答える
2

このエラーは、jar ファイルの競合が原因です。jetty.jar、jetty-util.jar を削除し、jsr305.jar も削除しました。REST API は問題なく動作します。

于 2013-10-22T10:30:19.463 に答える
1

WAS8.5 liberty プロファイルでは、エラーの原因となった wink の依存関係を削除した後でも、エラーは解消されませんでした。最終的に、サーバーを停止して起動する必要があることがわかりました。ソリューションは、このリンクの一番下に投稿されましたhttps://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014940544

于 2014-06-01T00:34:23.863 に答える