2013-11-09 1 views
3

Я новичок в Struts, и я пытаюсь запустить примерное веб-приложение для входа, используя Struts, но я не могу получить результатом является ошибка (javax.servlet.UnavailableException: Missing configuration resource for path /WEB-INF/struts-config.xml). Я сделал все, чтобы настроить стойки в eclipse. Я даже не понимаю, что такое исключение? пожалуйста, кто-нибудь помочь мнеjavax.servlet.UnavailableException: Отсутствует ресурс конфигурации для пути /WEB-INF/struts-config.xml

ошибки я получаю являются:

javax.servlet.UnavailableException: Missing configuration resource for path /WEB-INF/struts-config.xml 
at org.apache.struts.action.ActionServlet.splitAndResolvePaths(ActionServlet.java:1872) 
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:683) 
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:356) 
at javax.servlet.GenericServlet.init(GenericServlet.java:212) 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213) 
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026) 
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

index.jsp:

<html> 
    <body> 


     <form action="login.do"> 
     <tr> 
     <td>Username</td> 
     <td><input type = "text" name = "username" maxlength = "25"></td> 
     </tr> 
     <tr> 
     <td>Password</td> 
     <td><input type = "password" name = "password" minlength = "8" maxlength = "16"></td> 
     </tr> 

     <tr> 
     <td colspan = "2" align = "center"><button type = "submit" name = "submit">Submit</button> 
     <button type = "reset" name = "reset">Reset</button></td> 

     </tr> 


     </form> 
    </body> 
</html> 

LoginForm.java:

package com.sample.com; 

import org.apache.struts.action.ActionForm; 

import org.apache.struts.action.Action; 

import org.apache.struts.action.ActionMapping; 

import org.apache.struts.action.ActionForward; 

import javax.servlet.http.HttpServletRequest; 

import javax.servlet.http.HttpServletResponse; 

public class LoginAction extends Action { 

    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) 
    { 
     System.out.println("test"); 

    LoginForm login = (LoginForm)form; 

    String uname=login.getUname(); 

    String pass=login.getPass(); 

    if(uname=="admin" && pass =="test") 
    { 
    return mapping.findForward("success"); 

    } 
    else 
    { 
    return mapping.findForward("failure"); 

    } 
    } 
} 

LoginAction.java:

package com.sample.com; 

import org.apache.struts.action.ActionForm; 

import org.apache.struts.action.Action; 

import org.apache.struts.action.ActionMapping; 

import org.apache.struts.action.ActionForward; 

import javax.servlet.http.HttpServletRequest; 

import javax.servlet.http.HttpServletResponse; 



public class LoginAction extends Action { 

    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) 
    { 

     System.out.println("test"); 

    LoginForm login = (LoginForm)form; 

    String uname=login.getUname(); 

    String pass=login.getPass(); 

    if(uname=="admin" && pass =="test") 
    { 
    return mapping.findForward("success"); 
    } 
    else 
    { 
    return mapping.findForward("failure"); 

    } 

    } 


} 

config-struts.xml:

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



<struts-config> 

    <form-beans> 
     <form-bean name="loginRequest" type="com.sample.com.LoginForm"/> 
    </form-beans> 

    <global-forwards> 
     <forward name="success" path="/success.jsp"/> 
    </global-forwards> 

    <action-mappings> 
     <action path="/login" type="com.sample.com.LoginAction" name="loginRequest"> 
      <forward name="success" path="/success.jsp"/> 
      <forward name="failure" path="/failure.jsp"/>   
     </action> 
    </action-mappings> 

</struts-config> 

web.xml:

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

<web-app version="3.0" 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_3_0.xsd"> 

    <servlet> 
     <servlet-name>action</servlet-name> 
     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
     <init-param> 
      <param-name>config</param-name> 
      <param-value>/WEB-INF/struts-config.xml</param-value> 
     </init-param> 
     <init-param> 
      <param-name>debug</param-name> 
      <param-value>2</param-value> 
     </init-param> 
     <init-param> 
      <param-name>detail</param-name> 
      <param-value>2</param-value> 
     </init-param> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>action</servlet-name> 
     <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 
+0

Просьба поделиться вашей структурой упаковки. –

+0

Вы действительно получили какое-либо решение этой ошибки? – Prince

ответ

2

Убедитесь struts-config.xml находится в папке WEB-INF. Аналогично, hibernate.cfg.xml также должен находиться в соответствующем месте (если вы его используете).

1

Вы настроены веб-приложения для использования struts-config.xml

<init-param> 
    <param-name>config</param-name> 
    <param-value>/WEB-INF/struts-config.xml</param-value> 
</init-param> 

но не файл с таким именем в указанной папке. Убедитесь, что файл существует, или если вы используете другое имя для файла конфигурации struts, вы можете изменить это значение параметра init, чтобы отобразить доступность файла. Если для модуля имеется несколько файлов конфигурации, вы можете использовать запятую для разделения имен.

+0

Я уже разместил struts-config.xml в папке WEB-INF – user2935193

0

Вам необходимо добавить servlet-api.jar с apache lib папка. Вам нужно указать папку struts.xml в src папка под ресурсами java.

0

1) Вы упомянули свой struts.xml имя файла как конфиг-struts.xml но в Init-парам Вы писали, как распорок-config.xml. Проверьте правильность имен.

2) Или, может быть, (общая проблема), потому что вам не хватает тега DTD в вашем файле xls struts. Попробуйте добавить этот код над тегом <struts-config> в ваш struts-config.xml.

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

Смежные вопросы