互联网服务WAS 7.0

奇葩问题 请大家来看看

做了一个项目,框架是ssi(mybatis)框架出现了这么一个奇葩的问题:    在本地环境下运行(tomcat sunjdk 1.6 eclipse)没有任何问题但是 发布到websphere7.0上  spring loc容器里有两个 bean不给我生成啊什么意思呢?就是 在服务器启动的时候,spring会扫描 某个x...显示全部
做了一个项目,框架是ssi(mybatis)框架出现了这么一个奇葩的问题:
    在本地环境下运行(tomcat sunjdk 1.6 eclipse)没有任何问题
但是 发布到websphere7.0上  spring loc容器里有两个 bean不给我生成啊
什么意思呢?就是 在服务器启动的时候,spring会扫描 某个xml文件
然后根据xml的语法来生成相应的bean 并且放到loc容器中,当struts2的action需要注入的时候直接从
loc容器里取得
但是  spring 没有给我生成这个bean (bean id 为CheckVerificateCodeAction)
结果可想而知, 如下:
[15-3-10 13:11:49:467 CST] 0000001e Dispatcher    E com.opensymphony.xwork2.util.logging.commons.CommonsLogger error Exception occurred during processing request: Unable to instantiate Action, CheckVerificateCodeAction,  defined for 'CheckVerificateCodeAction' in namespace '/'CheckVerificateCodeAction
                                 Unable to instantiate Action, CheckVerificateCodeAction,  defined for 'CheckVerificateCodeAction' in namespace '/'CheckVerificateCodeAction

at com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:316)

at com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:397)

at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:194)

at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)

at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)

at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)

at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:552)

at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)

at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:125)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:80)

at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)

at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:997)

at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.invokeFilters(DefaultExtensionProcessor.java:1087)

at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:1007)

at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3954)

at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)

at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:945)

at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)

at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:191)

at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453)

at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)

at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)

at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:277)

at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)

at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)

at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)

at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)

at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)

at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)

at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)

at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)

at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)

at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1660)
Caused by: java.lang.ClassNotFoundException: CheckVerificateCodeAction

at java.net.URLClassLoader.findClass(URLClassLoader.java:434)

at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:201)

at java.lang.ClassLoader.loadClass(ClassLoader.java:677)

at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:112)

at java.lang.ClassLoader.loadClass(ClassLoader.java:643)

at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)

at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)

at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:511)

at java.lang.ClassLoader.loadClass(ClassLoader.java:643)

at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:511)

at java.lang.ClassLoader.loadClass(ClassLoader.java:643)

at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152)

at com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:128)

at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:233)

at com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:153)

at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:171)

at com.opensymphony.xwork2.factory.DefaultActionFactory.buildAction(DefaultActionFactory.java:22)

at com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:141)

at com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:297)

... 34 more



之后又在开源中国上 浏览帖子,发现有个人跟我出现了相同的问题,但是 他没有查到是因为 spring容器的原因导致struts2 的action实例化不了
但是 我在 本地的 tomcat上 还有 本地的websphere上都是好用的
这就真是奇了怪了
各路神仙 请现身吧! 多谢了!收起
参与21

查看其它 18 个回答小韩飞刀的回答

小韩飞刀小韩飞刀项目经理大连聚合力
回复 8# winzir

这个class 没有问题啊
问题是  在实例化的时候  struts中的action  是通过spring loc容器中  取得的
在  loc容器中    通过xml配置的一些bean 都注入到 loc容器里
但是   xml中 配置的bean  除了 其中两个  都注入进去了
最疑惑的是
本地的 websphere 没有任何问题
一样的注入
一样的 取得

但是  win server2012  死活就不行
spring loc容器里 就是加载不进来这两个bean
spring30升级到3.2 还是不行

websphere加载 xml的时候  有什么和  tomcat 不一样的地方吗?
互联网服务 · 2015-03-12
浏览791

回答者

小韩飞刀
项目经理大连聚合力

小韩飞刀 最近回答过的问题

回答状态

  • 发布时间:2015-03-12
  • 关注会员:1 人
  • 回答浏览:791
  • X社区推广