3

アプリケーションを JBoss 5.0.1 にデプロイしようとしています。このアプリの一部の Bean は@Resource注釈を使用しています。私が問題を理解していれば、JBoss はこの注釈を spring-core の前に処理しようとしていると思います。@Resourceそして、アノテーションのJBoss実装には「Mapped-name」が必須であることに気付きました。

15:53:04,037 エラー [StandardContext] コンテキスト [/***] の起動は、以前のエラーが原因で失敗しました
java.lang.RuntimeException: com.***.***.**ServiceImpl/XXprocess には、マップされた名前が必要です
        org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXmlResourceEnvRefs(WebResourceHandler.java:287) で
        org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXml(WebResourceHandler.java:325) で
        org.jboss.web.tomcat.service.TomcatInjectionContainer.processMetadata (TomcatInjectionContainer.java:550) で
        org.jboss.web.tomcat.service.WebCtxLoader.start(WebCtxLoader.java:158) で
        org.apache.catalina.core.StandardContext.start (StandardContext.java:4272) で
        org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310) で
        org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142) で
        org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461) で
        org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) で
        org.jboss.web.deployers.WebModule.start(WebModule.java:97) で
        sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で
        java.lang.reflect.Method.invoke(Method.java:597) で
        org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) で
        org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) で
        org.jboss.mx.server.Invocation.invoke(Invocation.java:88) で
        org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) で
        org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668) で
        org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) で
        $Proxy38.start で (不明なソース)
        org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42) で
        org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37) で
        org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAct) で
        org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) で
        org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) で
        org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) で
        org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:297) で
        org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1633) で
        org.jboss.dependency.plugins.AbstractController.incrementState (AbstractController.java:935) で
        org.jboss.dependency.plugins.AbstractController.resolveContexts (AbstractController.java:1083) で
        org.jboss.dependency.plugins.AbstractController.resolveContexts (AbstractController.java:985) で
        org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:823) で
        org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) で
        org.jboss.system.ServiceController.doChange(ServiceController.java:688) で
        org.jboss.system.ServiceController.start(ServiceController.java:460) で
        org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163) で
        org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99) で
        org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46) で
        org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.ja) で
        org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50) で
        org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171) で
        org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1440) で
        org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1158) で
        org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1179) で
        org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1211) で
        org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1099) で
        org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) で
        org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1633) で
        org.jboss.dependency.plugins.AbstractController.incrementState (AbstractController.java:935) で
        org.jboss.dependency.plugins.AbstractController.resolveContexts (AbstractController.java:1083) で
        org.jboss.dependency.plugins.AbstractController.resolveContexts (AbstractController.java:985) で
        org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:823) で
        org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) で
        org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:782) で
        org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702) で
        org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117) で
        org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70) で
        org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53) で
4

2 に答える 2

3

このマップ名の例外の問題が発生しました。私にとってそれを修正したのは、古いバージョンのWebアプリケーションスキーマを使用していたことです。

これからweb.xmlを変更しました:

<?xml version="1.0"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
...
</web-app>

これに:

<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
...
</web-app>
于 2011-12-21T01:13:52.760 に答える
0

私もこの問題を抱えています。JBoss 5.1.0-GA を使用しています

私の場合、問題はjavaee-api-5.jarライブラリがアプリケーション (耳) にパッケージ化されていたことです。
このライブラリは、Jboss ライブラリと競合していました。

アプリケーションから javaee-api-5.jar (または類似のもの) を削除するだけです。

Maven を使用すると、除外を追加できます。

<exclusion>
        <groupId>javaee</groupId>
        <artifactId>javaee-api</artifactId>
</exclusion>
于 2012-08-06T18:50:56.090 に答える