seasarorg / seasar2

S2Container
http://s2container.seasar.org/
74 stars 38 forks source link

java.lang.illegalargumentException #15

Open michael2043 opened 7 years ago

michael2043 commented 7 years ago

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 List<String> search(){
    return null;
}

}

public interface AbcService {
public List search(); }

Class IndexAction @Resource protected AbcLogic abcLogic;

@Resource
protected AbcService abcService;

@Execute(validator=false)
public String index() throws Exception {
    return "index.jsp";
}

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)

tks-haeno commented 7 years ago

May be, You shoud define class as follows...

public class AbcServiceImpl implements AbcServise{

michael2043 commented 7 years ago

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.(BeanDescImpl.java:113) at org.seasar.framework.beans.factory.BeanDescFactory.getBeanDesc(BeanDescFactory.java:60) at org.seasar.framework.container.factory.ConstantAnnotationHandler.createComponentDef(ConstantAnnotationHandler.java:151) at org.seasar.framework.container.factory.TigerAnnotationHandler.createComponentDef(TigerAnnotationHandler.java:408) at org.seasar.framework.container.creator.ComponentCreatorImpl.createComponentDef(ComponentCreatorImpl.java:262) at org.seasar.framework.container.hotdeploy.HotdeployBehavior.createComponentDef(HotdeployBehavior.java:211) at org.seasar.framework.container.hotdeploy.HotdeployBehavior.getComponentDef(HotdeployBehavior.java:172) at org.seasar.framework.container.impl.S2ContainerBehavior$DefaultProvider.acquireFromHasComponentDef(S2ContainerBehavior.java:172) at org.seasar.framework.container.impl.S2ContainerBehavior.acquireFromHasComponentDef(S2ContainerBehavior.java:86) at org.seasar.framework.container.impl.S2ContainerImpl.hasComponentDef(S2ContainerImpl.java:456) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:146) 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.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 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.doHotdeployFilter(HotdeployFilter.java:86) at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67) 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) at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147) at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111) at org.seasar.struts.filter.RoutingFilter.forward(RoutingFilter.java:219) at org.seasar.struts.filter.RoutingFilter.doFilter(RoutingFilter.java:130) 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.doHotdeployFilter(HotdeployFilter.java:99) at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69) 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 org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 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.handleFirstRequest(ServletInitialHandler.java:292) at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805) 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:744)

tks-haeno commented 7 years ago

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.

michael2043 commented 7 years ago

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

tks-haeno commented 7 years ago

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!

michael2043 commented 7 years ago

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

tks-haeno commented 7 years ago

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

michael2043 commented 7 years ago

I solved the problem!!! by change hotdeploy to cool or warm ,but I don't know why.... env.txt ct→ut or ct→xx

tks-haeno commented 7 years ago

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"