2013-09-20 4 views
0

Я установил сервер JBoss AS 7.1.1. Я создал файл с файлом проекта и помещал его под папку [JBOSS_HOME]\standalone\deployments.JBoss AS 7.1.1 проблема развертывания

Мое приложение является Spring MVC и вот мой web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 

    <display-name>My WebApp</display-name> 

    <!-- Configurations for the root application context (parent context) --> 
    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 

    <context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>/WEB-INF/classes/log4j.xml</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/spring-jdbc.xml</param-value> 
    </context-param> 

    <!-- Controller --> 
    <servlet> 
     <servlet-name>myapp</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring/myapp-servlet.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>myapp</servlet-name> 
     <url-pattern>/myapp/*</url-pattern> 
    </servlet-mapping> 



    <session-config> 
     <session-timeout>400</session-timeout> 
    </session-config> 

    <error-page> 
     <exception-type>java.lang.Exception</exception-type> 
     <location>/WEB-INF/jsp/Error.jsp</location> 
    </error-page> 

    <welcome-file-list> 
    <welcome-file>/WEB-INF/jsp/welcome.jsp</welcome-file> 
    </welcome-file-list> 

</web-app> 

MyApp-servlet.xml

<context:annotation-config /> 
<context:component-scan base-package="com.mypackage.mvc" /> 

<bean id="PropertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>  


<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <property name="basename" value="classpath:messages" /> 
    <property name="defaultEncoding" value="UTF-8" /> 
</bean> 

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <property name="messageConverters"> 
     <list> 
      <ref bean="jsonConverter" /> 
     </list> 
    </property> 
</bean> 

<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
    <property name="supportedMediaTypes" value="application/json" /> 
</bean> 

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    <!-- the maximum file size in bytes = 10MB --> 
    <property name="maxUploadSize" value="10485760" /> 
</bean> 

В журнале консоли MYAPP-servlet.xml загружается весной и все сопоставление запросов выполняется с моего контроллера. Частичный выход Log:

12:27:13,440 INFO [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping] (MSC service thread 1-4) Mapped URL path [/myapp/welcome] onto handler 'myappController' 
12:27:13,442 INFO [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping] (MSC service thread 1-4) Mapped URL path [/myapp/welcome.*] onto handler 'myappController' 
12:27:13,444 INFO [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping] (MSC service thread 1-4) Mapped URL path [/myapp/welcome/] onto handler 'myappController' 
12:27:13,527 INFO [org.springframework.web.servlet.DispatcherServlet] (MSC service thread 1-4) FrameworkServlet 'myapp': initialization completed in 1028 ms 
12:27:13,557 INFO [org.jboss.web] (MSC service thread 1-4) JBAS018210: Registering web context: /myapp 
12:27:13,565 INFO [org.jboss.as] (MSC service thread 1-1) JBAS015951: Admin console listening on http://127.0.0.1:9990 

класс Мой контроллер прост:

@Controller 
@RequestMapping("/myapp") 
public class MyappController { 

    private static Logger log = Logger.getLogger(MyappController.class); 

    // @formatter:off 
    /** 
    * Welcome to MyApp 
    * 
    * 
    * @return welcome.jsp Page 
    * 
    * 
    */ 
    // @formatter:on 
    @RequestMapping(value = "/welcome", method = RequestMethod.GET) 
    public String welcome() { 
     log.debug("welcome() called..."); 
     return "welcome"; 
    } 

} 

Если я достигаю http://localhost:8080/ тогда мои welcome.jsp нагрузки на веб-странице.

Но проблема Теперь, когда я пытаюсь получить доступ с помощью следующих URL http://localhost:8080/myapp/welcome.jsp Я вижу эту ошибку в веб-странице:

HTTP Status 404 - /myapp/welcome.jsp 

-------------------------------------------------------------------------------- 

type Status report 

message /myapp/welcome.jsp 

description The requested resource (/myapp/welcome.jsp) is not available. 


-------------------------------------------------------------------------------- 

JBoss Web/7.0.13.Final 

консоли журнала:

11:46:05,871 DEBUG [org.springframework.web.servlet.DispatcherServlet] (http-localhost-127.0.0.1-8080-1) DispatcherServlet with name 'myapp' processing GET request for [/myapp/welcome] 
11:46:05,873 DEBUG [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (http-localhost-127.0.0.1-8080-1) Looking up handler method for path /welcome 
11:46:05,875 DEBUG [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (http-localhost-127.0.0.1-8080-1) Did not find handler method for [/welcome] 
11:46:05,876 WARN [org.springframework.web.servlet.PageNotFound] (http-localhost-127.0.0.1-8080-1) No mapping found for HTTP request with URI [/myapp/welcome] in DispatcherServlet with name 'myapp' 
11:46:05,878 DEBUG [org.springframework.web.servlet.DispatcherServlet] (http-localhost-127.0.0.1-8080-1) Successfully completed request 

Что может быть не так?

+0

Что находится в вашем /WEB-INF/spring/myapp-servlet.xml? – eis

+0

@eis Я отредактировал свой вопрос и добавил файл myapp-servlet.xml – Sujoy

ответ

0

Вы должны получить доступ к своему приложению с помощью http://localhost:8080/myapp/welcome в вашей текущей конфигурации. Вы разместили свои jsp-файлы внутри WEB-INF, что означает, что они не доступны напрямую, что является стандартной практикой в ​​весеннем фрейме (и разумным по умолчанию в противном случае.)

Если вы хотите получить доступ к welcome.jsp напрямую , вам нужно будет переместить его за пределы WEB-INF. Я бы этого не сделал, однако запросы всегда должны проходить через сервлеты и не указывать прямо на .jsps.

+0

У меня есть ваша точка зрения, но это не работает. Я тоже это пробовал. Я добавил тоже. Я уверен, что есть глупая ошибка. Просто не знаю, где. – Sujoy

+0

@Sujoy вы могли бы поместить свое приложение в репозиторий github, например, откуда он может быть протестирован? – eis

+0

Спасибо, что помогли мне. Но я не могу сказать это, потому что мы не можем использовать это из офиса. Я редактировал свой вопрос с помощью журнала консоли. Еще раз спасибо. – Sujoy

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