java - 验证jboss部署期间的错误。如何解决这个问题?

标签 java deployment jboss-eap-7

当我在 Jboss 中部署应用程序时,出现以下错误

ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service jboss.deployment.subunit."test.ear"."hello.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."test.ear"."hello.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of subdeployment "hello.war" of deployment "test.ear"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:172)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0024: Could not configure component HelloWorld
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:106)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:165)
    ... 5 more
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at org.jboss.classfilewriter.ClassFile.define(ClassFile.java:313)
    at org.jboss.invocation.proxy.AbstractClassFactory.defineClass(AbstractClassFactory.java:160)
    at org.jboss.invocation.proxy.AbstractProxyFactory.getCachedMethods(AbstractProxyFactory.java:146)
    at org.jboss.as.ee.component.ViewDescription$DefaultConfigurator.configure(ViewDescription.java:196)
    at org.jboss.as.ee.component.DefaultComponentViewConfigurator.configure(DefaultComponentViewConfigurator.java:67)
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:92)
    ... 6 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.classfilewriter.ClassFile.define(ClassFile.java:308)
    ... 11 more
Caused by: java.lang.VerifyError: class com.test.java.HelloWorldImpl$$$view1 overrides final method getDetails.(Ljava/lang/String;)Ljava/lang/Object;
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    ... 16 more

注意:HelloWorldImpl 类不会覆盖 final方法 getDetails。它只是调用其父类(super class) final方法 getDetails。

代码:

class HelloWorldImpl extends Hello{
...
public void display() { 
...     
 Foo fooObj = (Foo)getDetails("test");
...
}
}               

class Hello{
public final Object getDetails(String id){
...
}
}

最佳答案

HelloWorldImpl 不可代理,因为它有一个从 Hello 继承的 final方法。

不可代理的类不能具有 @Dependent 以外的作用域。

如果您无法使用@Dependent作用域,您可以从HelloWorldImpl中提取包含您需要的方法的接口(interface),并将注入(inject)点更改为该接口(interface)类型。

然后检查涉及此情况和解决方法的 WELD 文档:https://docs.jboss.org/weld/reference/latest/en-US/html/injection.html#_client_proxies

关于java - 验证jboss部署期间的错误。如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61678280/

相关文章:

java - Jboss EAP 7 上的 com.fasterxml.jackson.databind.JavaType.isTypeOrSubTypeOf(Ljava/lang/Class;)Z\explicitly

java - session 可分发 EAP 它不起作用

java - 为什么 Spring 注释 Controller 优于传统映射?

java - 使用 Java 拆分复杂的 String 对象并将值填充到 DTO 中

.net - 重新审视 GAC 安装

deployment - 将meteor 部署到自己的域

angularjs - 如何将 AngularJS、Gulp、Bower 和 NPM 包完整前端应用程序部署到 digital ocean ?

java - Jboss EAP 7.0 中新的缺失/未满足的依赖项

java - 如何在sql中正确使用两个表之间的连接我有一个异常(exception)

java - 哪个引用终结器(FinalReference)或弱/幻影/软引用对于GC具有更高的优先级