2010-07-05 2 views
2

J'essaie d'utiliser Struts 2 cadre pour mon projet Google App Engine. J'ai configuré le cadre des entretoises correctement et j'ai créé une action en struts-config.xml fichier comme:Struts 2 problème sur Google App Engine (Java) - javax.swing.tree.TreeNode est une classe restreinte

<package name="myproj" namespace="/myproj" extends="struts-default"> 
    <action name="login"> 
    <result>/login.jsp</result> 
</action> 

Et je suis en train d'accéder à l'action ci-dessus par: http://localhost:8080/myproj/login.action. Mais je ne reçois pas ma page login.jsp comme prévu. Au lieu de cela, j'obtiens l'erreur suivante.

HTTP ERROR 500 

Problem accessing /myproj/login.action. Reason: 

    java.lang.NoClassDefFoundError: javax.swing.tree.TreeNode is a restricted class. Please see the Google App Engine developer's guide for more details. 
Caused by: 

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax.swing.tree.TreeNode is a restricted class. Please see the Google App Engine developer's guide for more details. 
    at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825) 
    at org.apache.jasper.runtime.PageContextImpl.access$1100(PageContextImpl.java:64) 
    at org.apache.jasper.runtime.PageContextImpl$12.run(PageContextImpl.java:745) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:743) 
    at org.apache.jsp.getin_jsp._jspService(getin_jsp.java:102) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) 
    at com.google.appengine.tools.development.PrivilegedJspServlet.access$101(PrivilegedJspServlet.java:23) 
    at com.google.appengine.tools.development.PrivilegedJspServlet$2.run(PrivilegedJspServlet.java:59) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:57) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) 

Y at-il quelque chose que je dois configurer pour corriger l'erreur ci-dessus et faire fonctionner le framework Struts 2 sur Google App Engine?

+0

Utilisez-vous classe '' javax.swing.tree.TreeNode' à votre getin.jsp'? –

+0

Non. Je n'utilise pas de classes Swing. – Veera

+0

peut-être que je me trompe, mais ressemble à votre trace de la pile 'à org.apache.jsp.getin_jsp._jspService (getin_jsp.java:102)' dit que vous êtes –

Répondre

1

Dans Struts 2.3.24, la dernière version de FreeMarker est utilisée - 2.3.22 et la solution ci-dessus ne fonctionne plus. Au lieu de cela, il est une version dédiée de FreeMarker à utiliser avec AppEngine qui peut être ajouté à pom comme suit:

<dependency> 
    <groupId>org.apache.struts</groupId> 
    <artifactId>struts2-core</artifactId> 
    <version>${struts2.version}</version> 
    <exclusions> 
     <exclusion> 
     <artifactId>freemarker</artifactId> 
     <groupId>org.freemarker</groupId> 
     </exclusion> 
    </exclusions> 
    </dependency> 

    <dependency> 
    <groupId>org.freemarker</groupId> 
    <artifactId>freemarker-gae</artifactId> 
    <version>2.3.22</version> 
    </dependency> 
Questions connexes