2016-12-15 25 views
0

としてオブジェクトを送信私は私のクライアントアプリケーションでこのコードを持っているXML

Client c = ClientBuilder.newClient(); 
    WebTarget t = c.target("http://localhost:8080/PlayerRest/r/Player"); 

    Player p = new Player(); 
    p.setPid(new Integer(954)); 
    p.setNickname("testForPUT"); 

    t.request(MediaType.APPLICATION_XML).put(Entity.entity(p, MediaType.APPLICATION_XML)); 

これは私のジューシーな例外を与える:

Exception in thread "main" org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/xml, type=class Player, genericType=class Player. 
    at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:227) 
    at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:149) 
    at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1139) 
    at org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:495) 
    at org.glassfish.jersey.client.HttpUrlConnector._apply(HttpUrlConnector.java:270) 
    at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:182) 
    at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:227) 
    at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:655) 
    at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:652) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228) 
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:422) 
    at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:652) 
    at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:412) 
    at org.glassfish.jersey.client.JerseyInvocation$Builder.put(JerseyInvocation.java:306) 
    at ClientRest.main(ClientRest.java:20) 

ここに問題がある可能性がありますか?

ありがとうございます!

答えて

0

あなたは以降、すべてのJAXBプロバイダが別のモジュールにバンドルされているバージョン2.16から、JAXBのサポート

を追加する必要があります。

プロジェクト内のジャージーメディアJAXB jarを追加したり、必要なjar

<dependency> 
    <groupId>org.glassfish.jersey.media</groupId> 
    <artifactId>jersey-media-jaxb</artifactId> 
    <version>2.17</version> 
</dependency> 
のためにあなたのpom.xmlに依存関係を追加することができます
関連する問題