2017-04-17 8 views
0

ためMessageBodyWriterを提供し、私はこのような1件のJavaエラーメッセージが表示されました。はどのように正しく<a href="https://documentation.mailgun.com/api-sending.html#examples" rel="nofollow noreferrer">https://documentation.mailgun.com/api-sending.html#examples</a></p> <p>でAPIの例を提供し、私はMIMEメッセージbody.Mailgunでmailgun APIをテストしていFormDataMultiPart

Exception in thread "main" org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/x-www-form-urlencoded, type=class org.glassfish.jersey.media.multipart.FormDataMultiPart, genericType=class org.glassfish.jersey.media.multipart.FormDataMultiPart. 
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:247) 
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) 
at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130) 
at org.glassfish.jersey.client.ClientRequest.doWriteEntity(ClientRequest.java:517) 
at org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:499) 
at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:393) 
at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285) 
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252) 
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684) 
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:681) 
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:444) 
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681) 
at com.mioying.chat.util.MailGunClient.sendEmail(MailGunClient.java:44) 
at com.mioying.chat.util.MailGunClient.main(MailGunClient.java:54) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 

これはプロジェクトの依存関係です。

<dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-client</artifactId> 
     <version>2.25.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-multipart</artifactId> 
     <version>2.25.1</version> 
    </dependency> 

プロジェクトに他のライブラリを含める必要がありますか?またはプロバイダを登録するための追加ステップが必要ですか?

答えて

1
  1. application/x-www-form-urlencodedを使用しようとしています。これはマルチパートのMIMEタイプではありません。それはまた

    post(Entity.entity(mutliPart, multiPart.getMediaType())); 
    
  2. 境界線が追加されますあなたはClient

    Client client = ClientBuilder.newClient(); 
    client.register(MultiPartFeature.class); 
    

MultiPartFeatureを登録する必要があるとして、あなただけのthis postに完全な例を参照してください、FormDataMultiPartからメディアタイプを取得する必要があります

+0

ありがとう〜!あなたは私の日を救う。 Mailgunはその例も更新する必要があります。 – Crazymooner

関連する問題

 関連する問題