我在netbean(在glassfish服务器上运行)上有一个javaEE应用程序(webapp)。我使用JPA ORM。我在MAVEN上导入了所有正确的jar。当我想在远程服务器(在tomcat上运行)上部署此webapp的WAR文件时,JPA会使其崩溃...
我在服务器上有一个错误500:
_EmployeesManagementApplication2_war_1PeristenceException:没有EntityManager的持久性提供程序,名为com.mycompanyjavax.persistence..0-SNAPSHOTPUjavax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)模型。DataTransaction.(DataTransaction.java:31)控制器。SingleController.doGet(SingleController.java:37)javax.servlet.http.HttpServlet.service(HttpServlet.java:635)javax.servlet.http.HttpServlet.service(HttpServlet.java:742)org.apache.tomcat.websocket.server.WsFilter.do过滤器(WsFilter.java:52)
这是我的pom.xml:
http://maven.apache.org/xsd/maven-4.0.0.xsd"
<groupId>com.mycompany</groupId>
<artifactId>EmployeesManagementApplication2</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>EmployeesManagementApplication2</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<version>2.5.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.5.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>7.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
而这是我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="com.mycompany_EmployeesManagementApplication2_war_1.0-SNAPSHOTPU" transaction-type="JTA">
<jta-data-source>java:app/awsrds</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
我的持久性文件正确地位于resources/META-INF中
非常感谢你
原因是Tomcat不是一个完整JavaEE服务器,它只是一个servlet容器,不提供JPA,Glassfish这样做。如果您希望将JPA与Tomcat一起使用,那么您需要将其作为库包含在您的WAR中。
如果您使用的是纯JPA,而不是任何Eclipselink功能,那么您可以使用TomEE,其中包括ApacheOpenJPA作为JPA的替代提供商。或者,你可以继续使用GlassFish或Payara,其中包括Eclipselink,不需要你将其包括在内。
当我在git中切换分支并使用安装包时,我的本地AEM实例突然停止工作。 生成失败,请求执行 我的错误日志显示以下错误:
我正在尝试将Spring应用程序部署到运行Apache Tomcat的服务器。然而,我得到了这个错误: 严重:ContainerBase.AddChild:start:…org.apache.Catalina.LifecycleException:无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Rur
我将Spring MVC web服务转换为Spring Boot(使用spring-boot-starter-web)。该服务打包为。war并已部署到Tomcat8服务器上,但我忘记显式添加spring-boot-starter-tomcat依赖项,并按照Spring的传统部署说明将其标记为已提供。 该服务似乎运行正常,即所有endpoint返回或发布正确的数据,我在服务器或应用程序日志中没有看到
我们将前面打包好的程序传到服务器其实就可以运行了,Blade的默认端口是 9000, 实际上大部分人都会使用 nginx 代理本地的网站,而不是直接将web服务端口修改为 80。 安装nginx的笔记我在这里写过,你可以参考一下。 启动项目 java -jar xxx.jar 后台运行 后台运行的方式蛮多的,比如使用 screen 这样的软件开启一个会话,也可以使用 nohup 命令 nohup
我一直试图在tomcat上部署一个简单的Web服务,但我没有成功,它总是返回我404错误。 我使用了这个例子中的代码 http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/ 但无法使用war,因为我在服务器中设置了上下文信息。xml 因此,我使用了与mkyong相同的代码,但在部署时遵循以下步骤:
当我在本地运行应用程序时,我使用GETlocalhost:8080/resources/sqlData/projects访问Rest资源没有问题,但是出于某种原因,当我在AWS服务器上尝试时,我使用my-app.elasticbeanstalk.com/resources/sqlData/projects. Amazon Web服务是否需要某种版本的Resteasy或其他东西?这是我的日志: 17