使用JPA的Web应用程序无法在外部Tomcat服务器上运行

时间:2013-07-21 22:24:42

标签: java eclipse java-ee tomcat jpa

我在我的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请求

如何让它正常运行?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。错误是由vps(oracle 1.7)和我的计算机(openJDK 1.7)上的不同Java版本引起的。我在VPS上制作了.WAR,一切正常。