2013-05-29 14 views
1

我正在用struts 2.3.14.2編寫一個新的web應用程序。在Tomcat 7它的工作原理,但在JBoss的5.1支柱拋出該異常Jboss 5.1,Struts 2.3.14.2「無法讀取類...」

ERROR Unable to read class [fpf-web.war.WEB-INF.classes.fi.fpf.mvc.controller.IndexController] [ClassFinder.error:38]{main:} 
Could not load fpf-web/war/WEB-INF/classes/fi/fpf/mvc/controller/IndexController.class - [unknown location] 
    at com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:722) 
    at com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:112) 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:390) 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347) 
    at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:260) 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:473) 
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:234) 
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:332) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:90) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3783) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4413) 
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310) 
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142) 
    at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461) 
    at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) 
    at org.jboss.web.deployers.WebModule.start(WebModule.java:97) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668) 
    at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) 
    at $Proxy38.start(Unknown Source) 
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42) 
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37) 
    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) 
    at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) 
    at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) 
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
    at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286) 
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 
    at org.jboss.system.ServiceController.doChange(ServiceController.java:688) 
    at org.jboss.system.ServiceController.start(ServiceController.java:460) 
    at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163) 
    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99) 
    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46) 
    at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) 
    at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50) 
    at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098) 
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781) 
    at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702) 
    at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117) 
    at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70) 
    at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53) 
    at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361) 
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 
    at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306) 
    at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271) 
    at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) 
    at org.jboss.Main.boot(Main.java:221) 
    at org.jboss.Main$1.run(Main.java:556) 
    at java.lang.Thread.run(Thread.java:662) 

這裏我struts.xml的

<struts> 
    <constant name="struts.convention.exclude.parentClassLoader" value="true" /> 
    <constant name="struts.convention.action.fileProtocols" value="jar,vfsfile,vfszip" /> 

    <constant name="struts.convention.package.locators" value="controller"/> 
    <constant name="struts.convention.default.parent.package" value="fpf-default"/> 

    <package name="fpf-default" extends="struts-default"> 
     <result-types> 
      <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> 
     </result-types> 
    </package> 
</struts> 

...我的行動

package fi.fpf.mvc.controller; 

import org.apache.struts2.convention.annotation.Action; 
import org.apache.struts2.convention.annotation.Namespace; 
import org.apache.struts2.convention.annotation.Result; 

import fi.fpf.mvc.BaseController; 


public class IndexController extends BaseController { 

    private static final long serialVersionUID = -2613425890762568273L; 


    @Action(value="loadIndex", results={ 
      @Result(name="indexView", location = "indexView", type="tiles") 
    }) 
    public String loadIndex() 
    { 
     return "indexView";  
    } 

} 

,這是我的基地作用

package fi.fpf.mvc; 

import com.opensymphony.xwork2.ActionSupport; 

public abstract class BaseController extends ActionSupport{ 

    private static final long serialVersionUID = -4005731572398023270L; 

} 

某人kn ows問題在哪裏? (我也嘗試添加

JAVA_OPTS=%JAVA_OPTS% -Djboss.vfs.forceVfsJar=true 

至run.conf)

+0

你能告訴你的web.xml文件中呢?在這裏你有完整的例子https://github.com/lukaszlenart/struts2-jboss-ear/ –

+0

我解決了這個問題,通過將這一行添加到struts.xml中 '' 但是現在會拋出一個新的異常,就像您在頂部的帖子(我編輯過)中看到的那樣。 –

+0

你如何部署你的應用程序?作爲戰爭? –

回答

0

爲什麼downvote?這對我來說似乎是合法的。

順便說一句,邏輯表明,如果相同的代碼運行在一個環境上,而不運行在另一個環境上,問題出現在環境中,而不是代碼中。

編輯

您必須確保:

  • 你的struts.xml文件包含在你的戰爭;
  • 你的struts.xml文件包含在正確的位置;
  • 您的類使用與應用程序服務器上的JRE兼容的Java版本進行編譯。

還檢查了this answer,並嘗試給予namespace="/"你的包太

+0

NoClassDefFoundError不存在 –

+0

我使用jdk 6來啓動jboss 5.1。 我的struts.xml被放置在正確的路徑,我添加了命名空間,如你所示,但問題依然存在...... –