2016-07-01 18 views
5

Sto provando a configurare la mia applicazione di avvio a molla per utilizzare la console h2. Ho trovato alcuni articoli e tutti usano webservlet. Ma non posso importare la classe anche se ho aggiunto la dipendenza h2 nel mio pom.xml. Ottengo questo messaggio di errore can not resolve the symbol WebServlet. La mia linea di importazioneImpossibile importare org.h2.server.web.WebServlet

import org.h2.server.web.WebServlet; 

Di seguito è riportato il mio pom.xml

<dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-aop</artifactId> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.myfaces.core</groupId> 
      <artifactId>myfaces-impl</artifactId> 
      <version>2.2.6</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.myfaces.core</groupId> 
      <artifactId>myfaces-api</artifactId> 
      <version>2.2.6</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.h2database</groupId> 
      <artifactId>h2</artifactId> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-actuator</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-core</artifactId> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-logging-juli</artifactId> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.1.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.primefaces</groupId> 
      <artifactId>primefaces</artifactId> 
      <version>5.1</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.primefaces.extensions</groupId> 
      <artifactId>all-themes</artifactId> 
      <version>1.0.8</version> 
     </dependency> 
     <dependency> 
      <groupId>org.ocpsoft.rewrite</groupId> 
      <artifactId>rewrite-servlet</artifactId> 
      <version>2.0.12.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-security</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-devtools</artifactId> 
     </dependency> 

ei miei application.properties

spring.datasource.url=jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE 
spring.datasource.driverClassName=org.h2.Driver 
spring.datasource.username=sa 
spring.datasource.password= 
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect 

e la configurazione

@Bean 
public ServletRegistrationBean h2servletRegistration() { 
    ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet()); 
    registration.addUrlMappings("/console/*"); 
    return registration; 
} 

fatemi sapere cosa sono manca qui.

risposta

8

Non dovrebbe essere un h2 compile (invece di runtime) la dipendenza?

3

Ho avuto lo stesso problema, probabilmente eseguendo lo stesso esempio. Aveva la corretta dipendenza da maven pom.xml ma per qualche ragione dovevo scaricare il jar del driver h2 direttamente da Maven. Quindi il codice sopra funzionava. La rimozione dell'elemento "runtime" verrà compilata per impostazione predefinita.

<!-- https://mvnrepository.com/artifact/com.h2database/h2 --> 
    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
     <version>1.4.192</version> 
    </dependency> 
1

Basta togliere runtime formare la vostra dipendenza H2 e tutto andrà bene

Problemi correlati