我试图获取在AppEngine上发送邮件所需的库。
文档(https://cloud.google.com/appengine/docs/standard/java/mail/mailgun)声明如果使用Maven,则需要添加这些文档:
球衣核 1.19.4
Jersey的客户端 1.19.4
Jersey的多 1.19.4
但是,添加它们会导致Eclipse中出现错误消息。
javax.ws.rs.ext.RuntimeDelegate $ HeaderDelegate类型不能 解决。它是从所需的.class文件间接引用的
可以通过添加javax.ws.rs-api-2.0.1解决这个问题,但使用该jar似乎有问题。
Appengine正在抛出错误:
Caused by: java.lang.ExceptionInInitializerError
... 44 more
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl
at com.sun.jersey.core.header.MediaTypes.<clinit>(MediaTypes.java:65)
... 62 more
Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at com.google.apphosting.runtime.ApplicationClassLoader.findClass(ApplicationClassLoader.java:45)
在这里的一个帖子中,虽然通过删除javax.ws.rs-api-2.0
可以解决错误org.glassfish.jersey.internal.RuntimeDelegateImpl NOT FOUND其他建议包括使用jersey2,但这需要我相信的其他配置,AppEngine文档不会显示如何做到这一点。
如何使用Mailgun ???
在Appengine上发送邮件答案 0 :(得分:0)
我使用泽西2.27(JAX-RS 2.1 / Jersey 2.26+)解决了这个问题,可从https://jersey.github.io/download.html下载
我需要以下罐子:
nearest
并修改AppEngine样本以使用Jersey 2.26+,如下所示:
hk2-api-2.5.0-b32.jar
hk2-locator-2.5.0-b42.jar
hk2-utils-2.5.0-b32.jar
javax.inject-1.jar
javax.inject-2.5.0-b42.jar
jersey-client.jar
jersey-common.jar
jersey-guava-2.26-b03.jar (from Jersey 2.25.1)
jersey-media-jaxb.jar
javax.ws.rs-api-2.1.jar
MAILGUN_API_KEY可从MailGun获得。 MAILGUN_DOMAIN_NAME是我的自定义域名,DOMAIN_MAIL_ADDRESS是我希望发送的地址。
注意:我的类路径上也有guava-gwt和gauva,所以也许是添加了jersey-guava就可以了。实际上,jersey-gauva只在jaxrs-ri-2.25.1而不是jaxrs-ri-2.27(JAX-RS 2.1 / Jersey 2.26+)。但这绝对是必需的。