java - 缺少约束 : Import-Package: Not able to start Activator

标签 java jpa osgi

我正在尝试在 OSGi 中使用 JPA 的示例,但在启动激活器时我遇到了一个奇怪的问题。

当我启动激活器时,会弹出一个验证对话框并提示上述错误。我已经导入了包,这是我第一次看到这个问题。

enter image description here

我有以下 Activator 类:

package org.aricent.jpaosgi;

public class Activator implements BundleActivator {

/*
 * (non-Javadoc)
 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
 */
public void start(BundleContext context) throws Exception {
    System.out.println("Hello World!!");

    try {
        EntityManagerFactory emf = Persistence
                .createEntityManagerFactory("todos");
        EntityManager em = emf.createEntityManager();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

/*
 * (non-Javadoc)
 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
 */
public void stop(BundleContext context) throws Exception {
    System.out.println("Goodbye World!!");
}

MANIFEST.MF

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
META-persistence: META-INF/persistence.xml
JPA-PersistenceUnits: todos
Bundle-Name: JpaOsgi
Bundle-SymbolicName: org.aricent.jpaOsgi
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: org.aricent.jpaosgi.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: javax.persistence;version="2.1.0",
                org.osgi.framework;version="1.3.0"
Bundle-ActivationPolicy: lazy

persistence.xml

<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
  version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
  <persistence-unit name="todos" transaction-type="RESOURCE_LOCAL">
  <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>myJPAProject.Todo</class>
<properties>
  <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
  <property name="javax.persistence.jdbc.url"
    value="jdbc:derby:/home/vogella/databases/simpleDb;create=true" />
  <property name="javax.persistence.jdbc.user" value="test" />
  <property name="javax.persistence.jdbc.password" value="test" />

  <!-- EclipseLink should create the database schema automatically -->
  <property name="eclipselink.ddl-generation" value="create-tables" />
  <property name="eclipselink.ddl-generation.output-mode"
    value="database" />
</properties>

任何人都可以帮我解决这个问题。谢谢。

最佳答案

这不是一个“奇怪的问题”。

您已经导入了这些包,但没有提供导出它们的包。所有导入的包都必须与相应的导出匹配,无论是来自另一个包还是来自基本框架/运行时(“系统包”)。

确保您的运行配置包括导出所需包的包。

关于java - 缺少约束 : Import-Package: Not able to start Activator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20512431/

相关文章:

performance - 使用 JPA 进行动态更新

java - 在 OSGI 中嵌入传递依赖

java - 从 OSGI bundle 调用 JDBC 和 UCP 连接

java - 从下拉列表中选择一种颜色并将该颜色存储在 cookie 中。

java - 我看不到更改,即使可重新加载在 Eclipse 中也是如此

java - hibernate 中的 hbm 文件

java - 将 JSON 数据发送到 servlet 结果为空字符串

java - 如何接收 EntityManager 的持久单元名称?

java - JPA关系 JPAContainer与ComboBox?

java - OSGi 组件的默认配置值包含转义的反斜杠