4

Spring Java 構成を使用して Web アプリを作成しています。

tomcat で実行すると、リソース /myapp/myapp が見つからないと表示されます

コンソール出力で、次のことに気付きました。これが問題を引き起こしているかどうかはわかりません。

奇妙に見えるログ行のみを表示しています。ログが大きいので

INFO: validateJarFile(C:\libraries\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\myapp\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class


Creating instance of bean 'beanNameHandlerMapping'
Returning cached instance of singleton bean 'delegatingWebMvcConfiguration'
Eagerly caching bean 'beanNameHandlerMapping' to allow for resolving potential circular     references
Looking for URL mappings in application context: Root WebApplicationContext: startup date [Mon J     un 04 13:28:33 EDT 2012]; root of context hierarchy
Rejected bean name  'org.springframework.context.annotation.internalConfigurationAnnotationProcessor': no URL paths identified
Rejected bean name 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor': no URL paths identified
Rejected bean name 'org.springframework.context.annotation.internalRequiredAnnotationProcessor': no URL paths identified
Rejected bean name 'org.springframework.context.annotation.internalCommonAnnotationProcessor': no URL paths identified
Rejected bean name 'webAppContextConfig': no URL paths identified
Rejected bean name 'org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0': no URL paths identified
Rejected bean name 'delegatingWebMvcConfiguration': no URL paths identified
Rejected bean name 'requestMappingHandlerMapping': no URL paths identified
Rejected bean name 'viewControllerHandlerMapping': no URL paths identified
Rejected bean name 'beanNameHandlerMapping': no URL paths identified
Rejected bean name 'resourceHandlerMapping': no URL paths identified
Rejected bean name 'defaultServletHandlerMapping': no URL paths identified
Rejected bean name 'requestMappingHandlerAdapter': no URL paths identified
Rejected bean name 'mvcConversionService': no URL paths identified
Rejected bean name 'mvcValidator': no URL paths identified
Rejected bean name 'httpRequestHandlerAdapter': no URL paths identified
Rejected bean name 'simpleControllerHandlerAdapter': no URL paths identified
Rejected bean name 'handlerExceptionResolver': no URL paths identified
Rejected bean name 'configureInternalResourceViewResolver': no URL paths identified
Rejected bean name 'environment': no URL paths identified
Rejected bean name 'systemProperties': no URL paths identified
Rejected bean name 'systemEnvironment': no URL paths identified
Rejected bean name 'servletContext': no URL paths identified
Rejected bean name 'contextParameters': no URL paths identified
Rejected bean name 'contextAttributes': no URL paths identified
Rejected bean name 'importRegistry': no URL paths identified
Rejected bean name 'messageSource': no URL paths identified
Rejected bean name 'applicationEventMulticaster': no URL paths identified
Finished creating instance of bean 'beanNameHandlerMapping'
Creating shared instance of singleton bean 'resourceHandlerMapping'
Creating instance of bean 'resourceHandlerMapping'
Returning cached instance of singleton bean 'delegatingWebMvcConfiguration'
Eagerly caching bean 'resourceHandlerMapping' to allow for resolving potential circular references
Mapped URL path [/css/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
Mapped URL path [/scripts/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
Mapped URL path [/images/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
Finished creating instance of bean 'resourceHandlerMapping'

ここに WebAppContextConfig.java があります

package com.example;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example")
public class WebAppContextConfig extends WebMvcConfigurerAdapter{
//Resolve logical view names to .jsp resources in /WEB-INF/views directory

@Bean
public InternalResourceViewResolver configureInternalResourceViewResolver() {
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("WEB-INF/jsp/");
    resolver.setSuffix(".jsp");
    return resolver;
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/scripts/**").addResourceLocations("/scripts/");
    registry.addResourceHandler("/css/**").addResourceLocations("/css/");
    registry.addResourceHandler("/images/**").addResourceLocations("/images/");
}
}

ここに WebAppInitializer.java があります

 package com.example;

 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRegistration;

 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.web.WebApplicationInitializer;
 import org.springframework.web.context.ContextLoaderListener;
 import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
 import org.springframework.web.servlet.DispatcherServlet;
 import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;

 public class WebAppInitializer implements WebApplicationInitializer {

/* (non-Javadoc)
 * @see org.springframework.web.WebApplicationInitializer#onStartup(javax.servlet.ServletContext)
 */
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
    rootContext.register(WebAppContextConfig.class);
    servletContext.addListener(new ContextLoaderListener(rootContext));

      AnnotationConfigWebApplicationContext dispatcherContext = 
                new AnnotationConfigWebApplicationContext();
              dispatcherContext.register(WebAppContextConfig.class);

    ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(rootContext));
    dispatcher.setLoadOnStartup(1);
    dispatcher.addMapping("/");


    DefaultServletHandlerConfigurer defaultConfig = new DefaultServletHandlerConfigurer(servletContext);
    defaultConfig.enable();

}

}

また、Java ベースの spring mvc 構成を探すのに適した場所はありますか?

ありがとう

4

1 に答える 1

2

これは@raviの根本的な原因ではありませんが、最初に強調したい問題がいくつかあります。

を。ContextLoaderListener と Dispatcher サーブレットを介して、Spring Java Config ファイルを 2 回ロードしているようです。ContextLoaderListener を介してのみ実行します。この方法で DispatcherServlet を定義できます-空のコンテキストをロードするだけです(理想的には 2 つの Java 構成があります- 1 つはコア アプリケーション用、もう 1 つは Web 構成用):

ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new GenericWebApplicationContext());
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");

b. log4j でデバッグ モードを有効にして、他に何が記録されているかを確認できますか。十分な情報でない場合は、トレース レベルで記録してください。

c. 内部ビュー リゾルバー パスが少し間違っているように見えます - 前方の "/" がありません:

resolver.setPrefix("/WEB-INF/jsp/");

これらを試してみて、今見ているものを見てください。

于 2012-06-05T02:43:31.223 に答える