0

私はPrimeFaces、elastic search、Springブートを利用するアプリケーションを持っています。続きJSTLを組み込んだTomcatのSpring Bootはjava.lang.ClassNotFoundExceptionをスローします。javax.servlet.jsp.jstl.core.Config

は期待通りの春の構成です、

@SpringBootApplication 
public class CommandCentreApplication extends WebMvcConfigurerAdapter{ 
    public static void main(String[] args) { 
     SpringApplication.run(CommandCentreApplication.class, args); 
    } 
    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/").setViewName("forward:/home.jsf"); 
    } 
    @Bean 
    ServletRegistrationBean facesServletRegistration() { 
     return new ServletRegistrationBean() { 
      @Override 
      public void onStartup(ServletContext servletContext) 
        throws ServletException { 
       FacesInitializer facesInitializer = new FacesInitializer(); 
       facesInitializer.onStartup(Collections.singleton(CommandCentreApplication.class), 
         servletContext); 
       servletContext.setInitParameter("primefaces.THEME", "redmond"); 
       servletContext.setInitParameter("javax.faces.FACELETS_REFRESH_PERIOD", "0"); 
       servletContext.setInitParameter("facelets.SKIP_COMMENTS", "true"); 
      } 
     }; 
    } 
    @Bean 
    ServletRegistrationBean pushServletRegistration(){ 
     ServletRegistrationBean pushServlet = new ServletRegistrationBean(new PushServlet(), "/primepush/*"); 
     pushServlet.addInitParameter("org.atmosphere.annotation.packages", "org.primefaces.push"); 
     pushServlet.addInitParameter("org.atmosphere.cpr.packages", "com.acn.hps.aops.demo.map.service.channel"); 
     pushServlet.setAsyncSupported(true); 
     pushServlet.setLoadOnStartup(0); 
     pushServlet.setOrder(Ordered.HIGHEST_PRECEDENCE); 
     return pushServlet; 
    } 
} 

と私の弾性検索の設定、

@Bean 
public Client client(){ 
    TransportClient client= new TransportClient(); 
    TransportAddress address = new InetSocketTransportAddress(PropertiesLoader.esIP, PropertiesLoader.esPort); 
    client.addTransportAddress(address); 
    return client; 
} 

後これと同じアプリケーションが実行されると、それはのpom.xmlだ

<?xml version="1.0" encoding="UTF-8"?> 
<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>com.acn.hps.aops.demo</groupId> 
    <artifactId>PSCommandCenter</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>CommandCentre</name> 
    <description>Command Center Application</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.3.RELEASE</version> 
     <relativePath /> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>1.16.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-devtools</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>com.google.code.geocoder-java</groupId> 
      <artifactId>geocoder-java</artifactId> 
      <version>0.16</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.3.2</version> 
     </dependency> 

     <!-- Primefaces --> 
     <dependency> 
      <groupId>org.primefaces</groupId> 
      <artifactId>primefaces</artifactId> 
      <version>5.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.primefaces.themes</groupId> 
      <artifactId>all-themes</artifactId> 
      <version>1.0.10</version> 
     </dependency> 

     <dependency> 
      <groupId>org.atmosphere</groupId> 
      <artifactId>atmosphere-runtime</artifactId> 
      <version>2.3.4</version> 
     </dependency> 

     <!-- JSF dependencies --> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-api</artifactId> 
      <version>2.2.8</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-impl</artifactId> 
      <version>2.2.8</version> 
      <scope>compile</scope> 
      <optional>true</optional> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 

     <!-- Elastic Search dependencies --> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-elasticsearch</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.elasticsearch</groupId> 
      <artifactId>elasticsearch</artifactId> 
      <version>1.7.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>com.opencsv</groupId> 
      <artifactId>opencsv</artifactId> 
      <version>3.7</version> 
     </dependency> 
    </dependencies> 

    <repositories> 
     <repository> 
      <id>primefaces</id> 
      <url>http://repository.primefaces.org</url> 
     </repository> 
    </repositories> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <executable>true</executable> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

ですIDE(Eclipse)から実行したときに、アプリケーションをjarファイルから実行すると私は次の例外を取得しています、

にjava.lang.ClassNotFoundException:java.net.URLClassLoader.findClass(不明なソース)でjavax.servlet.jsp.jstl.core.Config 〜[NA:1.8.0_45 ]。

この例外が検索され、このエラーを回避するためにjstlのjarが追加されています。しかし、私はすでに風袋の瓶にjstlの瓶があります。また、これが問題の場合は、IDEから実行中に同じ例外が発生するはずです。

私のアプリケーションのアウトラインとして使用したthis githubコードを参照できます。私はこれも同じ問題に直面しています。

+0

@balusCこのコードはIDEで正しく動作していると言いましたが、私はスプリングブートでjarファイルを作成し、jarファイルを実行していますが、この問題に直面しています。そして、私はまだ述べていないJSTLを追加しようとしました。 – BhaskerYadav

+0

上記のjarのpomへの依存性を追加したところ、この警告が表示されました。「jstlの管理バージョン1.2を複製しています。\t pom.xml \t/PSCommandCenter \t line 91 \t Maven pom Loading Problem "このリソースはコンソールのこのメッセージ 'JSF1091:/home.jspファイルでMIMEタイプが見つかりませんでした。これを解決するには、アプリケーションweb.xmlにmime-typeマッピングを追加してください。また私の質問は、私のアプリケーションがIDEの同じリソースで動作していて、なぜそのjarファイルが動作しないのでしょうか? – BhaskerYadav

+0

あなたはgithubのリンクを見ることができます。それは私がこの問題を再現できるように、私が使用しているプロジェクトの概要とその小さなものも持っています。ウルの応答ありがとう。 – BhaskerYadav

答えて

-1

脂肪ジャーを生成しなければならない

mvn clean install 

を実行して、親としてばねブートスターターを使用して(すなわち、すべての依存関係がそのジャーにコピーされることを意味します)。 詳しい情報はここで見つけることができます:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-build.html

はたぶんのpom.xml

<configuration> 
    <executable>true</executable> 
</configuration> 

内のスプリング・ブート・スタータープラグインで、この部分は、このいじりれます。その部分を取り除き、再び瓶を作ります。

+0

私はこのコードを後に追加しましたが、それ以前にも動作していませんでした。編集した質問にリンクしているgitコードを参照することができます。 – BhaskerYadav

関連する問題