[英]Verify error during jboss deployment. How to resolve this issue?
當我在 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
注意:class HelloWorldImpl 沒有覆蓋最終方法 getDetails。 它只是調用它的超級 class 最終方法 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
之外的 scope 。
如果你不能使用@Dependent
scope,你可以從HelloWorldImpl中提取一個你需要的方法的接口,並將注入點更改為接口類型。
然后檢查有關此情況和解決方法的 WELD 文檔: https://docs.jboss.org/weld/reference/latest/en-US/html/injection.html#_client_proxies
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.