我在我的VPS服务器上的Tomcat中发布动态Web应用程序时遇到了一些问题。
我开发了一个包含Servlet(创建实体管理器并对数据库进行操作)和jar文件的应用程序 - 实体组件也打包在jar文件中。 应用程序使用eclipselink和postgresql。
在Tomcat 7 Server上安装了日食,一切正常,但是当我尝试将它部署到我的VPS上的Tomcat 7 Server时,我得到了一个例外:
javax.servlet.ServletException: Error instantiating servlet class pl.marekbury.controller.StoreServer
和根本原因
javax.naming.NameNotFoundException: Name [pl.marekbury.controller.StoreServer/PERSISTENCE_UNIT_NAME] is not bound in this Context. Unable to find [pl.marekbury.controller.StoreServer].
我的localhost eclipse集成服务器上也有同样的错误,但我找到了一个解决方案(在这里,在堆栈上)来解决eclipselink版本,在我做了id后,错误消失了。
我正在以这种方式部署应用: - 从eclispe出口战争 - 通过tomcat web manager部署它
我试过了: - 将服务器更改为Tomee - 将所有jar库放在WEB-INF / lib
中部署到tomcat后的应用程序文件夹的结构:
----krzyzyk
| |---index.jsp
|---META-INF
| |---MANIFEST.MF
|
|---WEB-INF
| |---web.xml
| |---lib
| | |---all jar files(entities,servlet-api itd..)
| |
| |---classes
| | |---META-INF(remain after making jar with entities)
| | |---pl
| | | |---marekbury
| | | | |---controller
| | | | | |---StoreServer.class
| | | | |---model
| | | | | |---entities
| | | | | | |---User.class (remain after making jar with entities)
index.jsp向servlet StoreServer发出http请求
如何让它正常运行?
答案 0 :(得分:1)
我找到了解决方案。错误是由vps(oracle 1.7)和我的计算机(openJDK 1.7)上的不同Java版本引起的。我在VPS上制作了.WAR,一切正常。