我是GWT应用程序的新手,现在就开始研究它。我有一个问题似乎很简单,但我已经好几个小时都没解决了。我想通过这行代码通过P12密钥文件访问Google Analytics数据。
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(serviceAccountMail)
.setServiceAccountPrivateKeyFromP12File(new File("src/main/webapp/WEB-INF/key","XXXXXX-77b2f9138e9612309473.p12"))
.setServiceAccountScopes(AnalyticsScopes.all()).build();
如果我通过简单地将其作为Java应用程序运行来测试上面的代码,那么代码工作正常。但是当我将GWT应用程序部署到tomcat并让它运行时。我遇到了错误。
Mon Feb 15 16:04:41 GMT+800 2016 mp.client.XXAsyncCallback WARNING:
ERROR:Type 'java.io.FileNotFoundException' was not included in the set of
types which can be serialized by this SerializationPolicy or its Class
object could not be loaded. For security purposes, this type will not
be serialized.
: instance = java.io.FileNotFoundException: XXXXXX-77b2f9138e9612309473.p12
(The system cannot find the file specified) from Service_Proxy.getData
非常感谢任何直接的帮助。感谢。
答案 0 :(得分:2)
GWT不允许任何类型通过RPC传递。 FileNotFoundException似乎是不应该在客户端传递或调用的类型之一。
可传递的类类型应实现com.google.gwt.user.client.rpc.IsSerializable接口
有关详细信息,请查看this主题。
希望这有帮助。