【发布时间】: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配置:
- https://ebean.io/docs/getting-started/maven
- https://ebean.io/docs/setup/eclipse-apt
- https://ebean.io/docs/setup/enhancement
- 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: 增强
【问题讨论】: