2014-01-28 42 views
1

我已經編寫了wicket應用程序,並且它在本地完美運行。但是,當我把它部署到Oracle應用服務器(10G)我得到這個錯誤:在oracle應用程序(10g)服務器中啓動wicket應用程序

14/01/28 09:49:29.481 NTDB: Servlet error 
java.lang.NoSuchMethodError: org.apache.wicket.util.lang.Objects.newInstance(Ljava/lang/String;)Ljava/lang/Object; 
     at org.apache.wicket.Application.addInitializer(Application.java:864) 
     at org.apache.wicket.Application.load(Application.java:938) 
     at org.apache.wicket.Application.initializeComponents(Application.java:715) 
     at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:732) 
     at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.HttpApplication.getFilterConfig(HttpApplication.java:7767) 
     at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:563) 
     at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391) 
     at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.HttpRequestHandler.handleNotFound(HttpRequestHandler.java:1087) 
     at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:948) 
     at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458) 
     at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.AJPRequestHandler.run(AJPRequestHandler.java:313) 
     at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].server.http.AJPRequestHandler.run(AJPRequestHandler.java:199) 
     at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) 
     at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234) 
     at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29) 
     at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879) 
     at com.evermind[Oracle Containers for J2EE 10g (10.1.3.5.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) 
     at java.lang.Thread.run(Thread.java:662) 

我使用的檢票+四郎

的web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    version="2.5"> 

    <display-name>myapp</display-name> 
    <session-config> 
      <session-timeout>36000</session-timeout> 
    </session-config> 

    <filter> 
    <filter-name>ShiroFilter</filter-name> 
    <filter-class>org.apache.shiro.web.servlet.IniShiroFilter</filter-class> 
    <init-param><param-name>config</param-name><param-value> 
      [main] 
      authc.loginUrl = /login 
      [urls] 
      /login = anon 
      [users] 
      admin=admin, NT_ADMIN 
    </param-value></init-param> 
    </filter> 

    <filter-mapping> 
     <filter-name>ShiroFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <filter> 
     <filter-name>wicket.myapp</filter-name> 
     <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> 
     <init-param> 
      <param-name>applicationClassName</param-name> 
      <param-value>eu.peter.stats.pages.WicketApplication</param-value> 
     </init-param> 
    </filter> 

    <filter-mapping> 
     <filter-name>wicket.myapp</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <filter-mapping> 
     <filter-name>wicket.myapp</filter-name> 
     <url-pattern>/*</url-pattern> 
     <dispatcher>REQUEST</dispatcher> 
     <dispatcher>ERROR</dispatcher> 
    </filter-mapping> 

    <error-page> 
     <error-code>404</error-code> 
     <location>/404</location> 
    </error-page> 
</web-app> 

我應該怎麼辦?也許這是因爲我使用了Wicket過濾器?

回答

0

看起來你有一個期望Wicket 1.4.x的庫,並且你使用Wicket 1.5.x或更新的庫。

在你提供堆棧跟蹤它明確規定,從檢票類Objects不具有與 org.apache.wicket.util.lang.Objects.newInstance(Ljava /郎/字符串)的方法Ljava /郎/目的;

使用此方法的最新版本是Wicket 1.4.x.

您不能將舊版Wicket版本的庫與新版Wicket版本(反之亦然)混合使用。

相關問題