2013-02-19 97 views
3

我在使用Jboss 7.1.1 final时部署Web应用程序时遇到了问题。 ,同时部署它给了我很多的警告像下面 -在JBOSS中部署Struts 2项目7

12:41:29,961 INFO [org.springframework.web.context.ContextLoader] (MSC service thread 1-6) Root WebApplicationContext: initialization completed in 132 ms 
12:41:30,169 WARN [com.opensymphony.xwork2.util.FileManager] (MSC service thread 1-6) Could not create JarEntryRevision for [vfs:/content/Gurukul.war/WEB-INF/lib/struts2-core-2.2.1.1]!: java.util.zip.ZipException: error in opening zip file 
    at java.util.zip.ZipFile.open(Native Method) [rt.jar:1.6.0_24] 
    at java.util.zip.ZipFile.<init>(ZipFile.java:131) [rt.jar:1.6.0_24] 
    at java.util.jar.JarFile.<init>(JarFile.java:150) [rt.jar:1.6.0_24] 
    at java.util.jar.JarFile.<init>(JarFile.java:114) [rt.jar:1.6.0_24] 
    at com.opensymphony.xwork2.util.FileManager$JarEntryRevision.build(FileManager.java:307) [xwork-core-2.2.1.1.jar:2.2.1.1] 
    at com.opensymphony.xwork2.util.FileManager.loadFile(FileManager.java:145) [xwork-core-2.2.1.1.jar:2.2.1.1] 
    at com.opensymphony.xwork2.util.FileManager.loadFile(FileManager.java:105) [xwork-core-2.2.1.1.jar:2.2.1.1] 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:898) [xwork-core-2.2.1.1.jar:2.2.1.1] 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:154) [xwork-core-2.2.1.1.jar:2.2.1.1] 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:121) [xwork-core-2.2.1.1.jar:2.2.1.1] 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:179) [xwork-core-2.2.1.1.jar:2.2.1.1] 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) [xwork-core-2.2.1.1.jar:2.2.1.1] 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371) [struts2-core-2.2.1.1.jar:2.2.1.1] 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415) [struts2-core-2.2.1.1.jar:2.2.1.1] 
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69) [struts2-core-2.2.1.1.jar:2.2.1.1] 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) [struts2-core-2.2.1.1.jar:2.2.1.1] 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [jbossweb-7.0.13.Final.jar:] 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3269) [jbossweb-7.0.13.Final.jar:] 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3865) [jbossweb-7.0.13.Final.jar:] 
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.6.0_24] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.6.0_24] 
    at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_24] 

但最终的战争部署,我能够在JBoss中7.1.1最后打开URL。但是当我试图登录到应用程序时,它给了我下面的错误。

控制台输出 --->

12:42:08,199 INFO [com.ericsson.tni.action.AuthorizationAction] Entered login 
12:42:08,201 INFO [com.ericsson.tni.action.AuthorizationAction] Authentication Started For User : etapguh 
12:42:08,201 INFO [com.ericsson.tni.action.AuthorizationAction] Authentication Result : success 
12:42:08,202 INFO [com.ericsson.tni.action.AuthorizationAction] Initiating authorisation : 
12:42:08,202 ERROR [stderr] java.lang.NullPointerException 
12:42:08,203 ERROR [stderr]  at com.ericsson.tni.action.AuthorizationAction.login(AuthorizationAction.java:92) 
12:42:08,203 ERROR [stderr]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
12:42:08,203 ERROR [stderr]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
12:42:08,204 ERROR [stderr]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
12:42:08,204 ERROR [stderr]  at java.lang.reflect.Method.invoke(Method.java:616) 
12:42:08,204 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452) 
12:42:08,205 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291) 
12:42:08,205 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254) 
12:42:08,205 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) 
12:42:08,206 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
12:42:08,206 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,206 ERROR [stderr]  at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) 
12:42:08,207 ERROR [stderr]  at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
12:42:08,207 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
12:42:08,208 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,208 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133) 
12:42:08,208 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,209 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) 
12:42:08,209 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
12:42:08,209 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,210 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) 
12:42:08,210 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
12:42:08,210 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,211 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190) 
12:42:08,211 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,212 ERROR [stderr]  at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) 
12:42:08,212 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,212 ERROR [stderr]  at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) 
12:42:08,213 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,213 ERROR [stderr]  at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) 
12:42:08,213 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,214 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) 
12:42:08,214 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,215 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) 
12:42:08,215 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,216 ERROR [stderr]  at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) 
12:42:08,216 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,217 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142) 
12:42:08,217 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,218 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166) 
12:42:08,218 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
12:42:08,219 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,219 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) 
12:42:08,219 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,219 ERROR [stderr]  at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
12:42:08,220 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,220 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190) 
12:42:08,220 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,221 ERROR [stderr]  at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) 
12:42:08,221 ERROR [stderr]  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) 
12:42:08,222 ERROR [stderr]  at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) 
12:42:08,222 ERROR [stderr]  at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) 
12:42:08,222 ERROR [stderr]  at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) 
12:42:08,222 ERROR [stderr]  at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) 
12:42:08,223 ERROR [stderr]  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
12:42:08,223 ERROR [stderr]  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
12:42:08,224 ERROR [stderr]  at com.ericsson.tni.web.interceptor.LoginFilter.doFilter(LoginFilter.java:47) 
12:42:08,224 ERROR [stderr]  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
12:42:08,224 ERROR [stderr]  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
12:42:08,224 ERROR [stderr]  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) 
12:42:08,225 ERROR [stderr]  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 
12:42:08,225 ERROR [stderr]  at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) 
12:42:08,225 ERROR [stderr]  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) 
12:42:08,226 ERROR [stderr]  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
12:42:08,226 ERROR [stderr]  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
12:42:08,226 ERROR [stderr]  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) 
12:42:08,227 ERROR [stderr]  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 
12:42:08,227 ERROR [stderr]  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) 
12:42:08,227 ERROR [stderr]  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) 
12:42:08,227 ERROR [stderr]  at java.lang.Thread.run(Thread.java:679) 
12:42:08,228 ERROR [com.ericsson.tni.action.AuthorizationAction] null 

同样的项目在运行Tomcat的非常精细7.

请帮我解决这个问题,因为它是非常迫切的项目完成。

代码片段 - >

@Action(TNIBeans.AUTHORIZATION_ACTION) 
@Scope(TNIBeans.BEAN_SCOPE) 
public class AuthorizationAction extends ActionSupport implements SessionAware,ServletRequestAware { 

    private InputStream inputStream; 
    /** 
    * Logger for this class 
    */ 
    private static final Logger logger = Logger 
      .getLogger(AuthorizationAction.class); 
    @Autowired 
    private XStream xstream; 

    public void logException(String message) { 
     logger.error(message); 
    } 

    public void log(String msg) { 
     logger.info(msg); 
    } 

    HttpServletRequest request = null; 

    @Autowired 
    @Qualifier(TNIBeans.EMPLOYEE_SERVICE_IMPL) 
    private EmployeeService employeeServiceImpl; 
    @Autowired 
    @Qualifier(TNIBeans.CODE_SERVICE_IMPL) 
    private CodeMasterService codeMasterService; 

    Map<String,Map<String,String>> codeMaster = null; 
    private String strResult = null; 

    private static final long serialVersionUID = -8517227229292215672L; 

    private Map<String, Object> session = null; 
    private Employee emp = null; 

    private String userName; 
    private String password; 
    private String roles; 
    private String responseMsg; 

    public String login() throws Exception { 
     log("Entered login"); 
     if (logger.isDebugEnabled()) { 
      logger.debug("execute() - start....."); 
     } 
     try { 
      log("Authentication Started For User : "+userName); 
     // employeeServiceImpl.authenticate(userName, password); 
      inputStream = new ByteArrayInputStream("success".getBytes("UTF-8")); 
      log("Authentication Result : success"); 
      log("Initiating authorisation : "); // This is printed in Console output if u observe (ie, till here the code         executed properly) 

    // It couldn't create instance of "employeeServiceImpl" interface defined above..... 

      emp = employeeServiceImpl.authorize(userName); 

授权功能的另一个代码片段 - >

@Override 
    public Employee authorize(String signum) throws BusinessException { 
     System.out.println("Hi Tapo..."+signum); // this is not printed in console output if u observe (ie, controller doesn't         enter authorize function) 
     logger.info("authorize : "+signum); 
     Employee emp = null; 
     try{ 
      emp = findRoles(signum); 
      if (WebConstants.adminSignum.equalsIgnoreCase(signum)) { 
       emp.setSignum(signum); 
       emp.setName("System Administrator"); 
       emp.setRoles(Role.LnCD_ADMIN); 
       emp.setRoles(Role.LnCD_DELEGATE); 
       emp.setRoles(Role.SYS_ADMIN); 
      } 
      return emp; 
     }catch(BusinessException e){ 
      throw new BusinessException(e.getMessage()); 
     }catch(Exception e){ 
      throw new BusinessException(e.getMessage()); 
     } 
    } 
+0

可能您在配置中没有足够的库。 – 2013-02-19 09:54:00

+0

嗨罗马,感谢您的回复。这是一个支持maven的项目,它的war文件中包含了所有必需的库。而且它在Tomcat 7中运行得非常好。你能告诉我我丢失了什么jar文件吗? – Tapo 2013-02-19 10:01:37

+0

您是否在项目代码中使用了tomcat运行时库? – 2013-02-19 10:20:04

回答

0

根据您的控制台输出,是有关jboss的server.log文件,它是在你的部署文件夹java.lang.NullPointerExceptionAuthorizationAction的方法login中。而例外的声明

emp = employeeServiceImpl.authorize(userName); 

也就是说employeeServiceImplnull正确的发生。如果它不是null那么我们在日志中看到了"Hi Tapo..."。没有发生类似事件

然后employeeServiceImpl是通过Spring应用程序上下文初始化的属性。即使你没有在这里发布aplicationContext.xml,我假设它有bean定义。然后它应该被注入,再次假设它也可以工作,至于你说它在Tomcat服务器上运行良好。

因此,这只有在bean创建失败时才会发生。这正是NullPointerException你不应该阻止的情况。

那一刻我们只知道employeeService bean失败。我们没有来源。你没有发布它。然后我们需要来自日志文件的其他异常来找出为什么没有创建bean的原因。没有得到它。

因此,找到在JBoss 7上的Tomcat 7中部署工作应用程序的唯一方法。事情发生了,是一些集成框架的行为与预期略有不同。他们成为了在Tomcat下不使用的加载附加库。这是因为Tomcat中没有的JBoss功能。最后,我发现我的资源停止加载,因为JBoss以vsf协议返回URL。即使我的应用程序理解我需要添加这些协议以使其工作的协议vsfzip

2

这些警告仅在devMode(= true)期间可用,如果您不使用Convention插件,则一切都应该正常。

从Struts 2的2.3.1版本开始,增加了对JBoss 7的适当支持。