【问题标题】:Entity bean not enhanced error when deploying cxf soap war file to weblogic 12.2.1将 cxf 肥皂战争文件部署到 weblogic 12.2.1 时实体 bean 未增强错误
【发布时间】:2019-06-26 10:22:59
【问题描述】:

我创建了两个实体 Bean,它们将在用户登录和计费时将用户数据插入 mysql 数据库。我决定使用 Ebean ORM,因为它只是一个表格插入的“轻量级”。

该应用程序是基于 maven 的soap cxf war,部署到 weblogic 12.2.1 应用服务器并在 eclipse 2019-06-R xxx 上开发。

单元测试工作正常,因为数据被插入到测试数据库中,当在 eclipse 的主类中执行时,代码也持久化到普通数据库中,我没有得到这个“bean not enhanced error.. ." 本地

但是,在调用 bean 的插入方法的位置建立与数据库的连接(基于日志)后,生成的战争失败并显示“bean 未增强错误...”。

我该如何解决这个问题?

基于Ebean官网,我按照这个教程从设置到eclipse和maven配置:

  1. https://ebean.io/docs/getting-started/maven
  2. https://ebean.io/docs/setup/eclipse-apt
  3. https://ebean.io/docs/setup/enhancement
  4. https://ebean.io/docs/trouble-shooting

之前的问题大多是针对 Play 框架的,这与我的问题无关,例如:

https://groups.google.com/forum/#!topic/ebean/gdgGGVd0K5E

我已经更新了我的 pom.xml、application.yml 和 ebean.mf,如 github 示例所示:

https://github.com/ebean-orm/examples/tree/master/base-example

在命令行中运行 mvn clean install 并重新部署,但即使在本地单元测试和 java 主类中,数据被插入到数据库中,仍然得到相同的结果

安装并启用 Ebean Enhacer 11.x 插件

日食日志:

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:46.453 !MESSAGE ebean v11+ 清单包 - 实体:[registration.audit.model] 事务:[] querybean:[registration.audit.model]

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:48.990 !MESSAGE ... 增强调试级别:1

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:49.014 !MESSAGE ... 找到 ebean 清单文件

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:49.024 !MESSAGE ebean v11+ 清单包 - 实体:[registration.audit.model] 事务:[] querybean:[registration.audit.model,registration.audit.model]

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:49.038 !MESSAGE ... ebean-enhance> cls:registration/audit/model/Bill msg: 增强

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:49.053 !MESSAGE 增强:注册/审核/模型/账单

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:49.059 !MESSAGE ... ebean-enhance> cls:注册/审核/模型/登录消息:增强

pom.xml:


<plugin>
    <groupId>io.repaint.maven</groupId>
    <artifactId>tiles-maven-plugin</artifactId>
    <version>2.12</version>
    <extensions>true</extensions>
    <configuration>
        <tiles>
            <tile>org.avaje.tile:java-compile:1.1</tile>
            <tile>io.ebean.tile:enhancement:11.39.1</tile>
        </tiles>
    </configuration>
</plugin>

<dependency>
    <groupId>io.ebean</groupId>
    <artifactId>ebean</artifactId>
    <version>11.38.1</version>
</dependency>

<!-- support for query beans -->
<dependency>
    <groupId>io.ebean</groupId>
    <artifactId>ebean-querybean</artifactId>
    <version>11.38.1</version>
</dependency>

<!-- java annotation processor to generate query beans -->
<dependency>
    <groupId>io.ebean</groupId>
    <artifactId>querybean-generator</artifactId>
    <version>11.38.1</version>
    <scope>provided</scope>
</dependency>

ebean.mf:


entity-packages: za.gov.deeds.registration.audit.model
transactional-packages: za.gov.deeds.registration.service.audit
querybean-packages: za.gov.deeds.registration.service.audit
profile-location: true

application.yml:

datasource:
  db:
    username: xxxx
    password: 
    url: jdbc:mysql://localhost:3306/db
    driver: com.mysql.jdbc.Driver
    dbName: db 

比尔.java:

package registration.audit.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import org.joda.time.DateTime;
import io.ebean.Model;

@Entity
@Table(name = "soap_user_billing")
public class Bill extends Model {
   ...
}

登录.java:

package registration.audit.model;

import java.sql.Timestamp;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.TableGenerator;

import org.joda.time.DateTime;

@Entity
@Table(name = "login")

public class Login {
   ....
}

登录.java:

package registration.service.audit;

public class AuditService {

public  void insertLoginAuditDetails(Login loginAuditBean) throws Exception {

EbeanServer server = EbeanServerFactory.create(getDBServerConfig());

log.info("DB Server: {}, ", server.getName());

server.insert(loginAuditBean);


当数据库离线时,EbeanServer 会抛出一个 100% 的连接相关错误,但是当数据库打开时,即使 eclipse 日志显示如下,也会抛出“Login bean is not enhanced error”:

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:49.024 !MESSAGE ebean v11+ 清单包 - 实体:[registration.audit.model] 事务:[] querybean:[registration.audit.model,registration.audit.model]

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:49.038 !MESSAGE ... ebean-enhance> cls:registration/audit/model/Bill msg: 增强

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:49.053 !MESSAGE 增强:注册/审核/模型/账单

!ENTRY io.ebean.eclipse.enhancer 1 0 2019-06-26 10:44:49.059 !MESSAGE ... ebean-enhance> cls: registration/audit/model/Login msg: 增强

【问题讨论】:

    标签: maven cxf ebean


    【解决方案1】:

    我设法通过如下规定编辑 mvn pom.xml 文件来解决这个问题:

    1. 我将整个 tiles-maven-plugin artifact plugin 部分移除到“”下方的单独部分中,如下所示:
     <pluginManagement>
            <plugins>
            <plugin>
            <groupId>io.repaint.maven</groupId>
            <artifactId>tiles-maven-plugin</artifactId>
            <version>2.12</version>
            <extensions>true</extensions>
            <configuration>
                <tiles>
                    <tile>org.avaje.tile:java-compile:1.1</tile>
                    <tile>io.ebean.tile:enhancement:11.38.1</tile>
                </tiles>
            </configuration>
        </plugin>   
        </plugins>
    </pluginManagement> 
    

    到下面,外部插件管理:

    <plugins>
    
        <plugin>
            <groupId>io.repaint.maven</groupId>
            <artifactId>tiles-maven-plugin</artifactId>
            <version>2.12</version>
            <extensions>true</extensions>
            <configuration>
                <tiles>
                    <tile>org.avaje.tile:java-compile:1.1</tile>
                    <tile>io.ebean.tile:enhancement:11.38.1</tile>
                </tiles>
            </configuration>
        </plugin>   
    </plugins>
    

    然后我运行“mvn clean install”并毫无问题地部署到weblogic 12.2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 2012-05-06
      • 2012-04-11
      • 2014-03-18
      • 2017-02-24
      • 2013-09-14
      • 2018-08-30
      相关资源
      最近更新 更多