无法从Jboss存储库检索依赖项

时间:2012-05-11 12:30:34

标签: java-ee maven jboss ejb-3.0

我制作了一个EJB 3.0和一个客户端。 这是我的EJB的pom:

  <repositories>
    <repository>
      <id>Jboss</id>
      <url>https://repository.jboss.org/nexus/content/repositories/releases/</url>
    </repository>
  </repositories>
  <dependencies>
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>6.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.ejb3</groupId>
      <artifactId>jboss-ejb3-ext-api</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.jboss.ejb3</groupId>
      <artifactId>jboss-ejb3-ext-api-impl</artifactId>
      <version>1.0.0</version>
    </dependency>
  </dependencies>

但jboss-ejb3-ext-api无法检索到它的实现:/ 日食告诉我:

  

容器'Maven Dependencies'引用不存在的库   'C:\ usr \ local \ m2-repository \ org \ jboss \ ejb3 \ jboss-ejb3-ext-api \ 1.0.0 \ jboss-ejb3-ext-api-1.0.0.jar'MyFirstMavenEjb

在我的客户端,我刚刚添加了“jnp-client”,检索这个没有问题 知道为什么我不能找回那两个罐子吗? 感谢。

EDIT
我需要这个类:“org.jboss.ejb3.annotation.RemoteBinding”使用@RemoteBinding。

编辑2:解决方案 在cmd中做了一些“mvn clean install”后,我看到maven试图下载一些过渡依赖..... 来自旧JBOSS REPO。因为它被拒绝访问它只是在下载最终的.jar

之前停止了

forbidden acces to old repo

添加以下exlusions解决了问题(拒绝访问的jar)

<exclusions>
<exclusion>
<groupId>gnu-getopt</groupId>
<artifactId>getopt</artifactId>
</exclusion>
<exclusion>
<groupId>apache-xerces</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
<exclusion>
<groupId>apache-xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>wutka-dtdparser</groupId>
<artifactId>dtdparser121</artifactId>
</exclusion>
<exclusion>
<groupId>sun-jaxb</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
</exclusions>

然而,有没有更好的解决方案? 我猜它正试图从旧的回购中获取东西,因为这个罐子不再使用了,新的一个必须受欢迎。

2 个答案:

答案 0 :(得分:1)

我找到了更好的解决方案, 实际上这个存储库是折旧的,这意味着jboss管理不希望你再使用其中的内容。

但是,如果您向maven settings.xml添加配置文件,则可以授予对此repo的访问权限

添加此个人资料:

<profile>
  <id>jboss-deprecated-repository</id>
  <repositories>
    <repository>
      <id>jboss-deprecated-repository</id>
      <name>JBoss Deprecated Maven Repository</name>
      <url>https://repository.jboss.org/nexus/content/repositories/deprecated/</url>
      <layout>default</layout>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
        <updatePolicy>never</updatePolicy>
      </snapshots>
    </repository>
  </repositories>
</profile>

并且不要忘记通过addind激活配置文件   

  <pluginGroups>
    <pluginGroup>org.jboss.maven.plugins</pluginGroup>
  </pluginGroups>

答案 1 :(得分:0)

好的,所以你要找的罐子在$JBOSS_HOME/common/lib,所以我想在你的Maven回购中提供以下内容:
mvn install:install-file -Dfile=$JBOSS_HOME/common/lib/jboss-ejb3-ext-api.jar -DgroupId="org.jboss.javaee" -DartifactId="jboss-javaee" -Dversion="1.0.0" -Dpackaging=jar

执行此操作后,在Eclipse中更新Maven依赖项。