Google App Engine (Java + String + Velocity)数据访问调试,出现错误 Cannot find class [javax.naming.Context]
来源:互联网 发布:rmvb视频剪辑软件 编辑:程序博客网 时间:2024/06/07 18:25
最近赶赶时髦,也做一个简单的云开发。
重新发布后问题解决 :)
在众多的云平台中,我选择了 Google App Engine,虽然已被墙……
下载Elipse,安装 Google App Engine 和 Spring STS,这个按章官网的提示来就行了,没什么好说的。
然后安装AppEngine的文档,配置 ADO 数据映射,在本地测试,一切正常。使用Spring做 PersistenceManager 的依赖注入配置如下:
<!-- 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 封装到一个静态属性中去
public class PMF {private static final PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactions-optional");private PMF() {}public static PersistenceManagerFactory get() {return pmfInstance;}}
修改配置如下:
<!-- 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 中添加如下代码:
public static PersistenceManager getPersistenceManager() {return get().getPersistenceManager();}
修改Spring配置如下:
<bean id="persistenceManager" class="xxx.PMF" factory-method="getPersistenceManager" scope="request" destroy-method="close"></bean>
重新发布后问题解决 :)
- Google App Engine (Java + String + Velocity)数据访问调试,出现错误 Cannot find class [javax.naming.Context]
- 解决在eclipse发布google app engine 项目时出现的java.lang.IllegalStateException: cannot find javac executable based on java.home异常
- javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory
- Could not find class 'javax.naming.directory.InitialDirContext'的解决办法!
- javax.naming.NamingException: No naming context bound to this class loader
- tomcat启动报javax.naming.NamingException: No naming context bound to this class loader
- Google App Engine开发问题之javax.servlet.FilterChain is a restricted class
- google-java-app-engine
- google app engine 调试方法
- Hibernate出现javax.naming.NoInitialContextException 错误的解决办法
- Hibernate出现javax.naming.NoInitialContextException 错误的解决办法
- Hibernate出现javax.naming.NoInitialContextException 错误的解决办法
- 解决 运行java程序时 出现 cannot find main class
- javax.naming.NameNotFoundException: Name [comp/env] is not bound in this Context. Unable to find [co
- 调试PHP出现以下错误Cannot find module (IP-MIB)
- 使用eclipse调试gae(google app engine)
- Google App Engine 应用程序局域网调试
- javax.naming.NameNotFoundException: Name jdbc is not bound in this Context错误待解决中
- 绑定变量及其优缺点
- linux中时间的获取
- 快速排序的简单实现
- Learning OpenCV亚像素级角点检测方法——运动与跟踪基础
- 配置错误页
- Google App Engine (Java + String + Velocity)数据访问调试,出现错误 Cannot find class [javax.naming.Context]
- CentOS6.2下一步一步源代码安装OpenStack(六)horizon配置、运行、测试
- Android bootloader
- OpenStack相关软件下载及说明
- CentOS6.2下一步一步源代码安装OpenStack(七)安装配置计算节点
- 心情整天都在郁闷浮云往事如云烟,撕心裂肺:伤感心情日志
- 什么情况下要做固定资产减值准备
- python: url简单验证
- Linux下的计划任务——cron