线程“main”中的异常com.google.apphosting.api.ApiProxy $ CallNotFoundException:找不到API包'mail'或调用'Send()'

时间:2013-07-27 07:35:00

标签: java google-app-engine

我已经编写了一个使用gmail发送邮件的程序,如果我单独执行它的工作正常但是当我与google appengine集成它给我下面的错误时,

Exception in thread "main" com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'mail' or call 'Send()' was not found.
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:104)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:56)
at com.google.appengine.api.mail.MailServiceImpl.doSend(MailServiceImpl.java:98)
at com.google.appengine.api.mail.MailServiceImpl.send(MailServiceImpl.java:34)
at com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java:231)
at javax.mail.Transport.send(Transport.java:95)
at javax.mail.Transport.send(Transport.java:48)
at in.javadomain.PostMail.postMailMethod(PostMail.java:49)
at in.javadomain.PostMail.main(PostMail.java:20)

我确信没有集成错误或错误。我已经添加了javax.mail jar。

1 个答案:

答案 0 :(得分:2)

您需要正确设置测试环境,如下所示:

private final LocalServiceTestHelper helper =
    new LocalServiceTestHelper(new LocalMailServiceTestConfig());

@Before
public void setUp() {
    helper.setUp();
}

@After
public void tearDown() {
    helper.tearDown();
}

GAE需要这些依赖项:

<properties>
  <gae.version>1.9.17</gae.version>
</properties>
...
<dependency>
  <groupId>com.google.appengine</groupId>
  <artifactId>appengine-api-labs</artifactId>
  <version>${gae.version}</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>com.google.appengine</groupId>
  <artifactId>appengine-api-stubs</artifactId>
  <version>${gae.version}</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>com.google.appengine</groupId>
  <artifactId>appengine-testing</artifactId>
  <version>${gae.version}</version>
  <scope>test</scope>
</dependency>