【问题标题】:Verfy error on geronimo with openjpa使用 openjpa 在 geronimo 上验证错误
【发布时间】:2012-12-13 22:28:25
【问题描述】:

我在 Eclipse 中使用 openjpa 配置了一个简单的示例动态 Web 项目,但我总是收到 Verfy 错误。现在我到了一个我不知道的地步。 我使用 TBD 插件来增强实体代码。

所以你有什么穿的提示:

Geronimo 应用程序服务器已启动 20 web99 INFO [DefaultThreadPool 0] openjpa.Runtime - OpenJPA 动态加载验证提供程序。 21 web99 INFO [DefaultThreadPool 0] openjpa.Runtime - 启动 OpenJPA 2.1.1 25 web99 INFO [DefaultThreadPool 0] openjpa.jdbc.JDBC - 使用字典类“org.apache.openjpa.jdbc.sql.MySQLDictionary”。 2012-12-13 11:25:29,636 错误 [[jsp]] Servlet.service() for servlet [jsp] 在路径 [/web99] 的上下文中引发异常 [java.lang.VerifyError: 在分支目标处期望堆栈图帧43 in method model.Hello.()V at offset 34] 有根本原因 java.lang.VerifyError:在方法 model.Hello.()V 偏移 34 处的分支目标 43 处期望堆栈图帧 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:264) 在 org.apache.openjpa.meta.MetaDataRepository.classForName(MetaDataRepository.java:1552) 在 ...

persistent.xml

<persistence-unit name="web99" transaction-type="RESOURCE_LOCAL">
    <class>model.Hello</class>
    <properties>
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/Inventarum"/>
        <property name="javax.persistence.jdbc.user" value="root"/>
        <property name="javax.persistence.jdbc.password" value="***"/>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
        <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/>
    </properties>
</persistence-unit>

这是我的代码:

public class Db {

    private EntityManagerFactory factory;
    private EntityManager manager;

    public Db(){
        factory = Persistence.createEntityManagerFactory("web99");
        manager = factory.createEntityManager();
    }

    public String getInfo(){
        Query query = manager.createQuery("SELECT i FROM Hello i WHERE i.id=1");
        Hello hello = (Hello) query.getSingleResult();
        return hello.getName();
    }

}

eclipse生成的持久化类:

@Entity
@Table(name="hello")
public class Hello implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(unique=true, nullable=false)
    private int id;

    @Column(length=255)
    private String name;

    public Hello() {
    }

    public int getId() {
        return this.id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

谢谢

奥拉夫

【问题讨论】:

    标签: eclipse jakarta-ee jpa openjpa geronimo


    【解决方案1】:

    使用JDK1.7(+)和使用中的OpenJPA版本还不支持?这就是 stackmap 帧错误通常的含义

    【讨论】:

    • 这就是解决方案!多么“!§$”“!%&”。知道它何时适用于 1.7?
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 2012-11-11
      相关资源
      最近更新 更多