Open michael2043 opened 7 years ago
May be, You shoud define class as follows...
public class AbcServiceImpl implements AbcServise{
I modified public class AbcServiceImpl implements AbcServise but still error
public class AbcServiceImpl implements AbcService{ @Override public Dept selectDept() { // TODO Auto-generated method stub return null; } }
public interface AbcService { Dept selectDept(); }
13:15:44,288 WARN [org.jboss.modules] (default task-2) Failed to define class sra.dto.Dept in Module "deployment.Sys.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link sra/dto/Dept (Module "deployment.Sys.war:main" from Service Module Loader): loader constraint violation: loader (instance of org/jboss/modules/ModuleClassLoader) previously initiated loading for a different type with name "sra/dto/Dept"
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:446)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:274)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:78)
at org.jboss.modules.Module.loadModuleClass(Module.java:606)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2688)
at java.lang.Class.privateGetPublicMethods(Class.java:2814)
at java.lang.Class.privateGetPublicMethods(Class.java:2824)
at java.lang.Class.getMethods(Class.java:1602)
at org.seasar.framework.beans.impl.BeanDescImpl.setupPropertyDescs(BeanDescImpl.java:527)
at org.seasar.framework.beans.impl.BeanDescImpl.
Hi!
Failed to define class sra.dto.Dept in Module
This new Error depends on sra.dto.Dept.
1) Modify interfaces method as follows. public interface AbcService { int selectDeptCount(); }
if 1) be success, Dept's error depends on classpath settings. Check your classpath, jar it contains Dept class.
thank you for reply I changed int selectDept() in AbcService ,no error
But I don't know how to set classpath,Dept.java is in src/main/java and Dept only two string member
Almost!
May be, Dept.class (compiled from Dept.java) is not in deployment.Sys.war. Is Dept.java placed in , same as AbcService.java ?
Or restart JBoss!
I confirmed in Sys.war/WEB-INF/classes ,Dept.class in there sra/dto/Dept.class sra/action sra/service sra/logic all classes there
previously initiated loading for a different type with name "sra/dto/Dept"
Same as this Situation. https://stackoverflow.com/questions/18127431/spring-java-lang-linkageerror-loader-constraint-violation-loader-previously-in
I solved the problem!!! by change hotdeploy to cool or warm ,but I don't know why.... env.txt ct→ut or ct→xx
Yeeeah!
,but I don't know why....
From this site. ( Sorry, written in Japanese.) https://ml.seasar.org/archives/seasar-user/2009-February/016916.html
Hot deploy causes "ClassCastException", "LinkageError"
I use seasar2 first time as web project,In IndexAction.java when I use @resource protected AbcService abcService java.lang.illegalargumentException happened
but when I only used @resource protected AbcLogic abcLogic everhthing ok,only happned in "Service"??
public class AbcServiceImpl {
}
public interface AbcService { search();
}
public List
Class IndexAction @Resource protected AbcLogic abcLogic;
Caused by: org.seasar.framework.exception.SIllegalArgumentException: [ESSR0094]IllegalArgumentExceptionがクラス(sra.action.IndexAction)[ModuleClassLoader for Module "deployment.SysRelationApi.war:main" from Service Module Loader]の型(sra.service.AbcService)[ModuleClassLoader for Module "deployment.SysRelationApi.war:main" from Service Module Loader]のフィールド(abcService)に型(sra.service.impl.AbcServiceImpl$$EnhancedByS2AOP$$854e9b)[ModuleClassLoader for Module "deployment.SysRelationApi.war:main" from Service Module Loader]の値(sra.service.impl.AbcServiceImpl$$EnhancedByS2AOP$$854e9b@b2e813)を設定するときに発生しました。対象のクラスは(sra.action.IndexAction$$EnhancedByS2AOP$$b01fc0)[ModuleClassLoader for Module "deployment.SysRelationApi.war:main" from Service Module Loader]です。 at org.seasar.framework.util.FieldUtil.set(FieldUtil.java:171) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.setValue(AbstractBindingTypeDef.java:346) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:151) at org.seasar.framework.container.assembler.BindingTypeMustDef.doBind(BindingTypeMustDef.java:45) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:91) at org.seasar.framework.container.assembler.AccessTypeFieldDef.bind(AccessTypeFieldDef.java:50) at org.seasar.framework.container.assembler.AccessTypeFieldDef.bind(AccessTypeFieldDef.java:42) at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:56) at org.seasar.framework.container.deployer.RequestComponentDeployer.deploy(RequestComponentDeployer.java:67) at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:111) at org.seasar.struts.config.S2ActionMapping.getActionForm(S2ActionMapping.java:329) at org.seasar.struts.action.ActionFormWrapper.(ActionFormWrapper.java:62)
at org.seasar.struts.action.ActionFormWrapperClass.newInstance(ActionFormWrapperClass.java:82)
at org.seasar.struts.config.S2FormBeanConfig.createActionForm(S2FormBeanConfig.java:44)
at org.seasar.struts.action.S2RequestProcessor.processActionForm(S2RequestProcessor.java:211)
at org.seasar.struts.action.S2RequestProcessor.process(S2RequestProcessor.java:103)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at org.seasar.extension.filter.RequestDumpFilter.doFilter(RequestDumpFilter.java:127)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:71)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:274)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:209)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:221)
... 52 more
Caused by: java.lang.IllegalArgumentException: Can not set sra.service.AbcService field sra.action.IndexAction.abcService to sra.service.impl.AbcServiceImpl$$EnhancedByS2AOP$$854e9b
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
at java.lang.reflect.Field.set(Field.java:758)
at org.seasar.framework.util.FieldUtil.set(FieldUtil.java:162)