Google App Engine (Java + String + Velocity)数据访问调试,出现错误 Cannot find class [javax.naming.Context]
最近赶赶时髦,也做一个简单的云开发。
在众多的云平台中,我选择了 GOOGLE App Engine,虽然已被墙……
下载Elipse,安装 Google App Engine 和 SPRing STS,这个按章官网的提示来就行了,没什么好说的。
然后安装ApPEngine的文档,配置 ADO 数据映射,在本地测试,一切正常。使用Spring做 PersistenceManager 的依赖注入配置如下:
[htML]
!-- Context bean -->
bean id="persistenceManagerFactory" class="javax.jdo.JDOHelper" factory-method="getPersistenceManagerFactory">
constructor-arg>
value>
transactions-optional/value>
/constructor-arg>
/bean>
bean id="persistenceManager" factory-bean="persistenceManagerFactory" factory-method="getPersistenceManager" scope="request" destroy-method="close">
/bean>
写了一些简单数据操作,在本地测试一切正常。然后发布到服务器上,出现异常。
查看AppEngine控制台提供的日志,发现如下错误
Cannot find class [javax.naming.Context]
这方面的中文资料几乎没有。Google了一下发现一些英文介绍,大概是说 PersistenceManagerFactory 这个对象不可以用 Spring 注入。于是按照 Google 文档的方法,将 Factory 封装到一个静态属性中去
[java]
public class PMF {
private static final PersistenceManagerFactory pmfInstance = JDOHelper
.getPersistenceManagerFactory("transactions-optional");
private PMF() {
}
public static PersistenceManagerFactory get() {
return pmfInstance;
}
}
修改配置如下:
[html]
!-- Context bean -->
bean id="persistenceManagerFactory" class="xxx.PMF" factory-method="get">
/bean>
bean id="persistenceManager" factory-bean="persistenceManagerFactory" factory-method="getPersistenceManager" scope="request" destroy-method="close">
/bean>
重新上传之后,发现错误类型变成了:
Cannot find class [javax.naming.Name]
看来使用 Spring 注入 PersistenceManager 也是不行的,于是在 PMF 中添加如下代码:
[java]
public static PersistenceManager getPersistenceManager() {
return get().getPersistenceManager();
}
修改Spring配置如下:
[html]
bean id="persistenceManager" class="xxx.PMF"
factory-method="getPersistenceManager" scope="request" destroy-method="close">
/bean>
最近赶赶时髦,也做一个简单的云开发。
在众多的云平台中,我选择了 Google App Engine,虽然已被墙……
下载Elipse,安装 Google App Engine 和 Spring STS,这个按章官网的提示来就行了,没什么好说的。
然后安装AppEngine的文档,配置 ADO 数据映射,在本地测试,一切正常。使用Spring做 PersistenceManager 的依赖注入配置如下:
[html]
!-- Context bean -->
bean id="persistenceManagerFactory" class="javax.jdo.JDOHelper" factory-method="getPersistenceManagerFactory">
constructor-arg>
value>
transactions-optional/value>
/constructor-arg>
/bean>
bean id="persistenceManager" factory-bean="persistenceManagerFactory" factory-method="getPersistenceManager" scope="request" destroy-method="close">
/bean>
写了一些简单数据操作,在本地测试一切正常。然后发布到服务器上,出现异常。
查看AppEngine控制台提供的日志,发现如下错误
Cannot find class [javax.naming.Context]
这方面的中文资料几乎没有。Google了一下发现一些英文介绍,大概是说 PersistenceManagerFactory 这个对象不可以用 Spring 注入。于是按照 Google 文档的方法,将 Factory 封装到一个静态属性中去
[java]
public class PMF {
private static final PersistenceManagerFactory pmfInstance = JDOHelper
.getPersistenceManagerFactory("transactions-optional");
private PMF() {
}
public static PersistenceManagerFactory get() {
return pmfInstance;
}
}
修改配置如下:
[html]
!-- Context bean -->
bean id="persistenceManagerFactory" class="xxx.PMF" factory-method="get">
/bean>
bean id="persistenceManager" factory-bean="persistenceManagerFactory" factory-method="getPersistenceManager" scope="request" destroy-method="close">
/bean>
重新上传之后,发现错误类型变成了:
Cannot find class [javax.naming.Name]
看来使用 Spring 注入 PersistenceManager 也是不行的,于是在 PMF 中添加如下代码:
[java]
public static PersistenceManager getPersistenceManager() {
return get().getPersistenceManager();
}
修改Spring配置如下:
[html]
bean id="persistenceManager" class="xxx.PMF"
factory-method="getPersistenceManager" scope="request" destroy-method="close">
/bean>
觉得可用,就经常来吧! 欢迎评论哦! html5教程,巧夺天工,精雕玉琢。小宝典献丑了!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Google App Engine (Java + String + Velocity)数据访问调试,出现错误 Cannot find class [javax.naming.Context]
本文地址: https://pptw.com/jishu/586501.html