2016-03-31 9 views
0

Ich erhalte den folgenden Fehler, den ich untersucht habe, verursacht durch einen Mangel an Abhängigkeiten oder zumindest das, was die Antworten auf ähnliche Fragen waren. Ich glaube, dass ich alle notwendigen Abhängigkeiten für das Frühlingsrahmenwerk habe, aber es wirft den Fehler fort. Ich habe auf dem Server und dem Projekt sauber ausgeführt, aber ohne Erfolg. Jede Eingabe wäre großartig, denn ich bin extrem neu in Spring und Java Enterprise Apps.Spring Keine Klasse Ausnahme gefunden, wenn Abhängigkeit existiert

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>MyCalendar</groupId> 
    <artifactId>MyCalendar</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <dependencies> 
    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-expression</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-beans</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jdbc</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>3.2.3.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-oxm</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc-portlet</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
    <version>1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>hsqldb</groupId> 
     <artifactId>hsqldb</artifactId> 
     <version>1.8.0.7</version> 
    </dependency> 

    </dependencies> 


    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.3</version> 
     <configuration> 
      <source>1.8</source> 
      <target>1.8</target> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.6</version> 
     <configuration> 
      <warSourceDirectory>WebContent</warSourceDirectory> 
      <failOnMissingWebXml>false</failOnMissingWebXml> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

aus meinem Servlet Der Fehler kommt:

@Override

org.apache.catalina.core.ApplicationContext log SEVERE: StandardWrapper.Throwable 
java.lang.NoClassDefFoundError: 
org/springframework/context/support/FileSystemXmlApplicationContext 
at mycalendar.servlets.EventServlet.init(EventServlet.java:53) 
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1238) 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1151) 
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:828) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Unknown Source) 

Mar 31, 2016 6:13:41 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Allocate exception for servlet eventServlet java.lang.NoClassDefFoundError: org/springframework/context/support/FileSystemXmlApplicationContext 
at mycalendar.servlets.EventServlet.init(EventServlet.java:53) 
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1238) 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1151) 
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:828) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Unknown Source) 

jedoch in meiner pom-Datei mit Maven in ich den Kontext für den Frühling Rahmen deklarieren, wie unten gesehen public void init (ServletConfig config) löst ServletException { super.init (config);

ApplicationContext context = new FileSystemXmlApplicationContext("spring.xml"); <------here 

Calendar cal = new GregorianCalendar(); 

Event eventOne = new Event(1, "event 1", "john smith", "12:00am","Fullerton, CA",cal); 
Event eventTwo = new Event(2, "event 1", "jane smith", "1:00pm","Placentia,CA",cal); 
Event eventThree = new Event(3, "event 3", "jules smith", "2:00pm","Brea, CA",cal); 

//Add Dummy Data 
eventsDatabase.add(eventOne); 
eventsDatabase.add(eventTwo); 
eventsDatabase.add(eventThree); 

} 

Projektstruktur:

enter image description here

+0

überprüfen Sie korrekt importiert oder nicht? –

+0

@subburoyal was meinst du damit? – wmurmann

Antwort

1

den Code sehen kann ich sehen, dass Sie eine pom.xml definieren, aber da, dass Ihr Projekt Projekt kein Maven ist infact Sie nicht haben eine Projektstruktur wie unten

src 
- main 
    - java 
    - ..... 
    - resource 
    - .... 
    - webapp 
     WEB-INF 
     - .... 
     ..... 
- test 
    - java 
     - ..... 
    - resource 
     - .... 

aus diesem Grund Sie die pom für die Abhängigkeit Verpackung gesetzt und so weiter, aber sie cant'use maven wahrscheinlich Sie die eclipse-IDE verwenden um den Krieg zu bauen, und eclipse hat wahrscheinlich die Abhängigkeit nicht richtig unter lib-Ordner unter WEB-INF pakiert. Sie haben Eclipse manuell für pakage die Dependency korrekt eingestellt.

Das ist mein Rat war es, den Code für die Leistung von Maven mit einer Struktur, Umgestalten, die ich oben beschrieben, macht Eclipse bewusst tha tyou ein Maven-Projekt hat die Maven Natureinstellung, und im allgemeinen FileSystemXmlApplicationContext nicht für eine Web-Anwendung, verwendet . Sie sould eine Struktur wie folgt verwenden:

configure die Ihre Spring-Web-Kontext: getRootConfigClasses für die @Configuration Klasse des Kontextes Ihre Wurzel Frühling, und getServletConfigClasses für die Ihre @Configuration Klasse für die Ihren Web-Kontext

public class PhoneBookServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

    @Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class[] {PhonBookApplicationContext.class}; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return new Class[] {PhoneBookMvcContext.class}; 
    } 

    @Override 
    protected String[] getServletMappings() { 
     return new String[] {"/"}; 
    } 
} 

die Ihre Feder Webkontext wie folgt konfiguriert werden:

@Configuration 
@EnableTransactionManagement 
@ComponentScan(basePackages = {"it.valeriovaudi.web.controller","it.valeriovaudi.web.rest"}) 
@EnableWebMvc 
public class PhoneBookMvcContext extends WebMvcConfigurerAdapter { 

// Thymeleaf Config 
/* 
* <bean id="templateResolver" 
     class="org.thymeleaf.templateresolver.ServletContextTemplateResolver" 
     p:prefix="/WEB-INF/templates/" 
     p:templateMode="HTML5" 
     p:suffix=".html"/> 
    <bean id="templateEngine" 
     class="org.thymeleaf.spring4.SpringTemplateEngine" 
     p:templateResolver-ref="templateResolver"> 
     <property name="additionalDialects"> 
     <set> 
     <bean class="org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect"/> 
     </set> 
     </property> 
    </bean> 
    <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver" 
      p:templateEngine-ref="templateEngine"/> 
    */ 
    @Bean 
    public ServletContextTemplateResolver templateResolver(){ 
     ServletContextTemplateResolver servletContextTemplateResolver = new ServletContextTemplateResolver(); 
     servletContextTemplateResolver.setPrefix("/WEB-INF/templates/"); 
     servletContextTemplateResolver.setSuffix(".html"); 
     servletContextTemplateResolver.setTemplateMode("HTML5"); 

     return servletContextTemplateResolver; 
    } 

    @Bean 
    public SpringTemplateEngine templateEngine(){ 
     SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine(); 
     springTemplateEngine.setTemplateResolver(templateResolver()); 
     springTemplateEngine.setAdditionalDialects(Collections.singleton(new SpringSecurityDialect())); 
     return springTemplateEngine; 
    } 

    @Bean 
    public ThymeleafViewResolver thymeleafViewResolver(){ 
     ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver(); 
     thymeleafViewResolver.setTemplateEngine(templateEngine()); 

     return thymeleafViewResolver; 
    } 

    /* 
    Message .properties sources 
    <bean id="messageSource" 
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource" 
    p:basenames="WEB-INF/messages/messages"/> 
    */ 

    @Bean 
    public MessageSource messageSource(){ 
     ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource = new ReloadableResourceBundleMessageSource(); 
     reloadableResourceBundleMessageSource.setBasenames("WEB-INF/messages/messages"); 

     return reloadableResourceBundleMessageSource; 
    } 
    /* 
    <mvc:resources mapping="/resources*//**" location="web-resources/, classpath:/META-INF/resources/webjars/" /> 
    <mvc:resources mapping="/favicon.ico" location="web-resources/img/favicon.jpg" /> 
    */ 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     super.addResourceHandlers(registry); 

     registry.addResourceHandler("/resources/**").addResourceLocations("web-resources/").addResourceLocations("classpath:/META-INF/resources/webjars/"); 
     registry.addResourceHandler("/favicon.ico").addResourceLocations("web-resources/img/favicon.jpg"); 
    } 

} 

für diese Probe I ispiration von einem meiner Open-Source-Projekt Tel.buch aber der entscheidende Punkt nehmen ist, dass Sie die Ihrem Kontext wie oben independ haben konfigurieren Entwerfen Sie die konfigurierte Bean, nehmen Sie ein Beispiel für die Art von Klasse, die Sie konfiguriert haben, und die Projektstruktur, die Sie für die Verwendung benötigen, maven.

Ich hoffe thattis kann Ihnen helfen

Verwandte Themen