2016-12-07 8 views
0

私は、Spring Bootで新しいプロジェクトを開始しましたが、これは私が把握しようとしているところです。私はSpring Tool Suiteを使用しています。これは私のためにSpring Bootプロジェクトを作成しています。さらに、SpringのバッチとSpringのデータが必要なことを知っている依存関係をロードしました。SpringのClassNotFoundException SpringのJUnitテストのJavaMailSenderImpl

これは私のpom.xmlです:

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

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-batch</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-mail</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 

    <!-- JDBC driver --> 
    <dependency> 
     <groupId>com.microsoft.sqlserver</groupId> 
     <artifactId>mssql-jdbc</artifactId> 
     <version>6.1.0.jre8</version> 
    </dependency> 
</dependencies> 

私は、リファレンスドキュメントを読んで、私はラインの下のいくつかの点でメールをする必要がありますことを知っているので、私は私のapplication.propertiesファイルにこれを追加してきた:私は、その後にしようとした

spring.mail.host=my.mail.host 

でアプリケーションを構築するしかし、それはテストでエラーを投げた。

package its.idcard.batch; 

import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.springframework.boot.test.context.SpringBootTest; 
import org.springframework.test.context.junit4.SpringRunner; 

@RunWith(SpringRunner.class) 
@SpringBootTest 
public class IdCardBatchApplicationTests { 

    @Test 
    public void contextLoads() { 
    } 

} 

だから、それはやっているすべてのアプリケーション・コンテキストをロードしようとしているが、それはorg.springframework.mail.javamail.JavaMailSenderImpl上にClassNotFoundExceptionで失敗します。テストは、次から構成されています。

私は、Spring Dataのデータを少し追加してから、テストをスキップすると、私のスタブアプリケーションは期待通りに動作します(そして生成されたjarファイルを見れば、その春-context-support-4.3.4-RELEASE.jarが存在し、問題のクラスを含んでいます)、テスト上のクラスパスの問題のようですが、私は困惑しています。プロパティファイルのspring.mail.host行をコメントアウトすると、テストは問題なく実行されます。

感謝の意を表します。

+0

あなたは 'javax.mail'依存関係を追加する必要があります。すでに '春ブート・スターター・mail'依存関係に含まれている。この \t \t \t のjavax.mail \t \t \t メール \t \t \t 1.4.7 \t \t

+0

を使用してみてくださいもう一度追加する必要はありません。 –

+0

[JavaMailの現在のバージョンは1.5.6]です(https://java.net/projects/javamail/pages/Home)。 –

答えて

0

私はちょうど私のMavenリポジトリのjarファイルが破損しているように見えていたと思います。私は手動でコンフィグレーションクラスにMailSenderのBeanを作成してそれが役立つかどうかを確認することにしましたが、それを含んでいるjarが依存関係にあったとしてもEclipseはクラスを見つけられなかったと判断しました。私はmvn compileをコマンドラインから試しました。これは、壊れたjarを示すより有用なエラーを与えました。私はローカルリポジトリから問題のjarファイルを削除し、mavenにそれらを再ダウンロードしてもらえました。上記の構成。

他人に役立つことを願っています。

関連する問題