2013-08-30 133 views
1

我是新Struts中2.我想用struts2中創建一個簡單的Hello程序,當我嘗試運行該程序,我得到在控制檯以下消息:Struts 2的問題來運行程序

Aug 30, 2013 11:33:35 AM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\HP SimplePass\x64;C:\Program Files (x86)\HP SimplePass\;;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\12.0\DLLShared\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Intel\Services\IPT\;C:\Program Files\Common Files\Autodesk Shared\;C:\Program Files (x86)\Autodesk\Backburner\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Git\bin;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Java\jdk1.7.0_25\bin;C:\javaworks\apache-ant-1.9.2\bin;;. 
Aug 30, 2013 11:33:36 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:ExampleTracker' did not find a matching property. 
Aug 30, 2013 11:33:36 AM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
Aug 30, 2013 11:33:36 AM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
Aug 30, 2013 11:33:36 AM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 661 ms 
Aug 30, 2013 11:33:36 AM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
Aug 30, 2013 11:33:36 AM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.42 
Aug 30, 2013 11:33:37 AM com.opensymphony.xwork2.util.logging.jdk.JdkLogger error 
SEVERE: Dispatcher initialization failed 
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:301) 
    at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:438) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:207) 
    at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:93) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484) 
    at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:584) 
    at com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:484) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:324) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:221) 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490) 
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) 
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:299) 
    ... 28 more 
Caused by: java.lang.ExceptionInInitializerError 
    at com.opensymphony.xwork2.ognl.OgnlValueStackFactory.setContainer(OgnlValueStackFactory.java:84) 
    ... 33 more 
Caused by: java.lang.IllegalArgumentException: Javassist library is missing in classpath! Please add missed dependency! 
    at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:168) 
    ... 34 more 
Caused by: java.lang.ClassNotFoundException: javassist.ClassPool 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165) 
    ... 34 more 

Aug 30, 2013 11:33:37 AM org.apache.catalina.core.StandardContext filterStart 
SEVERE: Exception starting filter struts2 
java.lang.reflect.InvocationTargetException - Class: com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector 
File: ContainerImpl.java 
Method: inject 
Line: 301 - com/opensymphony/xwork2/inject/ContainerImpl.java:301:-1 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:502) 
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) 
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:301) 
    at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:438) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:207) 
    at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:93) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484) 
    at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:584) 
    at com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:484) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:324) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:221) 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490) 
    ... 15 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:299) 
    ... 28 more 
Caused by: java.lang.ExceptionInInitializerError 
    at com.opensymphony.xwork2.ognl.OgnlValueStackFactory.setContainer(OgnlValueStackFactory.java:84) 
    ... 33 more 
Caused by: java.lang.IllegalArgumentException: Javassist library is missing in classpath! Please add missed dependency! 
    at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:168) 
    ... 34 more 
Caused by: java.lang.ClassNotFoundException: javassist.ClassPool 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165) 
    ... 34 more 

Aug 30, 2013 11:33:37 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error filterStart 
Aug 30, 2013 11:33:37 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/ExampleTracker] startup failed due to previous errors 
Aug 30, 2013 11:33:37 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Aug 30, 2013 11:33:37 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Aug 30, 2013 11:33:37 AM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 1277 ms 

我原來的代碼塊的優勢如下:

HelloWorld.java

package com.xyz; 

import com.opensymphony.xwork2.ActionSupport; 


public class HelloWorld extends ActionSupport{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
    private String greeting; 

    public String getGreeting() { 
     return greeting; 
    } 

    public void setGreeting(String greeting) { 
     this.greeting = greeting; 
    } 

    @Override 
    public String execute() throws Exception { 
     setGreeting("hello program"); 
     return SUCCESS; 
    } 

} 

struts.xml的

<?xml version="1.0" encoding="UTF-8"?> 

<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <package name="basicStruts" extends="struts-default"> 
     <action name="hello" class="com.xyz.HelloWorld"> 
      <result name="success">/HelloWorld.jsp</result> 
     </action> 

    </package> 

</struts> 

運行時,我試圖通過鏈接http://localhost:8080/ExampleTracker/hello訪問後,我得到了以下頁面:

enter image description here

任何人可以幫助我如何解決這個問題。

感謝

+0

請考慮使用類似Maven或其等價物來管理您的依賴;這將會消除這樣的問題很長的路要走。 –

+0

你能請分享一個鏈接來關注。所以,可以很容易地管理依賴關係。 –

+0

Maven很容易找到。 –

回答

0

你錯過了Javassist庫,在需要添加到您的路徑。您需要將Javassist-XXXXX.jar包含在您的Struts下載的類路徑中。