0

我在导入 1 月 20 日标题为“以数据为中心的富互联网应用程序的秘诀”的 Vaadin 博客文章底部的 SimpleCRM 示例应用程序 (vaadin-jpa-app) 时遇到了一些问题(链接:https://vaadin .com/blog/-/blogs/a-recipe-for-a-data-centric-rich-internet-application )

如README.md中所述,从https://hub.jazz.net/git/vaadin/vaadin-jpa-app git克隆存储库后,我尝试将该项目作为Maven项目导入Eclipse Luna但不幸收到以下与 pom.xml 文件相关的错误:

vaadin-maven-plugin:7.3.7:resources vaadin-maven-plugin:7.3.7:update-theme vaadin-maven-plugin:7.3.7:update-widgetset

无论如何,我都尝试将应用程序部署到我的 WebSphere Liberty Profile Server,但出现“找不到上下文根”错误。

我还注意到,在 WebSphere Application Server Liberty Profile 下的 server.xml 文件中,在复制“ README.md 的“本地开发”部分(来自https://hub.jazz.net/project/vaadin/vaadin-jpa-app/overview

更熟悉这个过程的人可以指导我完成我应该做什么吗?将不胜感激。谢谢!

(开始程序)

准备:

1) 在 Eclipse 中,我通过 Eclipse Marketplace ( http://marketplace.eclipse.org/content/ibm-websphere-application-server-liberty-profile-developer-tools-luna-0 )安装了 WebSphere Application Server Liberty Profile

2) 在 Eclipse 的 Enterprise Explorer 下,在 WebSphere Application Server Liberty Profile | 服务器 | 默认服务器 | server.xml,我已经添加了自述文件中概述的 JDBC 驱动程序配置片段。我还根据您发布的代码段修改了代码。

3)我在自述文件中提到的相应目录中添加了一个 derby.jar 文件

4)我安装了 m2e-wtp 连接器(http://marketplace.eclipse.org/content/maven-java-ee-integration-eclipse-wtp-luna

5)使用 Git Shell,我 git clone https://hub.jazz.net/git/vaadin/vaadin-jpa-app

部署应用程序:

6) 之后,在 Eclipse 中,我将刚刚克隆的 vaadin-jpa-app 目录导入为“现有 Maven 项目”。这将在 Eclipse Enterprise Explorer 中创建一个 vaadin-jpa-app 项目和一个 vaadin-jpa-applicationEAR 项目。

7)此时,我前面描述的三个“错误”通过选择“不执行(添加到 pom)”作为每个“错误”的操作来纠正。(描述:放置元数据,告诉 m2e 忽略将 Maven 插件添加到构建的 pom 中的执行。)

8)我右键单击“vaadin-jpa-application [vaadin-jpa-app master]”项目并选择Run As | Maven 安装。

9)我右键单击“vaadin-jpa-application [vaadin-jpa-app master]”项目并选择Run As | 在服务器上运行。

10) 我选择 localhost 下的 WebSphere Application Server Liberty Profile 并确保只有 vaadin-jpa-application(而不是 vaadin-jpa-applicationEAR)在“Configured:”列下。这会产生 404 错误。

(开始控制台输出)

Launching defaultServer (WebSphere Application Server 8.5.5.4/wlp-1.0.7.cl50420141211-1039) on Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_25-b18 (en_US)
[AUDIT   ] CWWKE0001I: The server defaultServer has been launched.
[AUDIT   ] CWWKZ0058I: Monitoring dropins for applications. 
[ERROR   ] SRVE9990E: The class org.vaadin.presentation.Servlet has a @WebServlet annotation but does not implement the javax.servlet.http.HttpServlet interface.
[ERROR   ] SRVE9991E: The class org.vaadin.presentation.CompressionFilter has a @WebFilter annotation but does not implement the javax.servlet.Filter interface.
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWNEN0049W: Resource annotations on the methods of the org.vaadin.backend.CustomerService class will be ignored. The annotations could not be obtained because of the exception : <openjpa-2.2.3-SNAPSHOT-r422266:1595313 nonfatal general error> org.apache.openjpa.util.GeneralException: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[ERROR   ] CNTR4006E: The CustomerService enterprise bean in the vaadin-jpa-application.war module of the vaadin-jpa-application application failed to start. Exception: <openjpa-2.2.3-SNAPSHOT-r422266:1595313 nonfatal general error> org.apache.openjpa.util.GeneralException: Lcom/vividsolutions/jts/geom/Point;
    at org.apache.openjpa.enhance.PCClassFileTransformer.transform0(PCClassFileTransformer.java:164)
    at org.apache.openjpa.enhance.PCClassFileTransformer.transform(PCClassFileTransformer.java:126)
    at org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl.transform(PersistenceProviderImpl.java:290)
    at com.ibm.ws.jpa.management.JPAPUnitInfo.transformClass(JPAPUnitInfo.java:1380)
    at [internal classes]
Caused by: java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2575)
    at java.lang.Class.getDeclaredFields(Class.java:1908)
    at org.apache.openjpa.lib.util.J2DoPrivHelper$7.run(J2DoPrivHelper.java:297)
    at org.apache.openjpa.lib.util.J2DoPrivHelper$7.run(J2DoPrivHelper.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.openjpa.persistence.PersistenceMetaDataDefaults.determineImplicitAccessType(PersistenceMetaDataDefaults.java:366)
    at org.apache.openjpa.persistence.PersistenceMetaDataDefaults.determineAccessType(PersistenceMetaDataDefaults.java:334)
    at org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:276)
    at org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:920)
    at org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:905)
    at org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:752)
    at org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations(AnnotationPersistenceMetaDataParser.java:545)
    at org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:415)
    at org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:260)
    at org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:586)
    at org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:396)
    at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:388)
    at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:286)
    at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:257)
    at org.apache.openjpa.enhance.PCClassFileTransformer.transform0(PCClassFileTransformer.java:146)
    ... 4 more
Caused by: java.lang.ClassNotFoundException: Could not find class 'com.vividsolutions.jts.geom.Point' as resource 'com/vividsolutions/jts/geom/Point.class'
    ... 29 more

[AUDIT   ] CWWKT0016I: Web application available (default_host): http://localhost:9080/vaadin-jpa-application/
[AUDIT   ] CWWKZ0001I: Application vaadin-jpa-application started in 4.171 seconds.
[AUDIT   ] CWWKF0011I: The server defaultServer is ready to run a smarter planet.
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWNEN0049W: Resource annotations on the methods of the org.vaadin.backend.CustomerService class will be ignored. The annotations could not be obtained because of the exception : <openjpa-2.2.3-SNAPSHOT-r422266:1595313 nonfatal general error> org.apache.openjpa.util.GeneralException: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
4

1 回答 1

3

当你开始时,确保你有一个没有额外插件的 Eclipse 安装,并且安装了最新版本的自由配置文件插件(或其 beta 版本)。其他 eclipse 插件可能会干扰部署。

还要确保您拥有示例项目的最新版本(git pull)。在过去的几个月里,Liberty 和 Vaadin CDI 发展迅速,可能存在一些小的不兼容性。

eclipse 所说的“错误”只是 eclipse 不知道它应该如何在内部处理这些构建设置。您可以标记它们,以便 eclipse 忽略它们并执行一次完整构建(mvn install)以编译客户端资源。

如果 Eclipse 在导入 war 文件时创建了一个“ear 项目”,只需删除它并仅部署 war 文件。

在 server.xml 中,您必须启用所需的功能。该应用程序需要 servlet、JPA、EBJ lite 和 CDI,但仅启用整个 java ee 6 Web 配置文件可能更容易且几乎同样轻量级,这就是我在我的自由服务器中几乎总是使用的:

<!-- Enable features -->
<featureManager>
    <feature>localConnector-1.0</feature>
    <feature>webProfile-6.0</feature>
</featureManager>

如果您按照说明添加了 derby jar 并定义了数据源,那么事情应该可以正常工作。让我知道是否还有问题。

于 2015-02-11T19:31:13.067 回答