2
spring-test-htmlunitを使用してHTMLUnitテストを実行する際に問題が発生しました。 WebクライアントのインスタンスにGETPAGE()を呼び出すときは、次のように、私はnoSuchMethodエラーを取得:SpringテストHTMLUnit NoSuchMethod CookieManager.getCookies(URL)
java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.CookieManager.getCookies(Ljava/net/URL;)Ljava/util/Set;
at org.springframework.test.web.servlet.htmlunit.HtmlUnitRequestBuilder.cookies(HtmlUnitRequestBuilder.java:267)
at org.springframework.test.web.servlet.htmlunit.HtmlUnitRequestBuilder.buildRequest(HtmlUnitRequestBuilder.java:104)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:141)
at org.springframework.test.web.servlet.htmlunit.MockMvcWebConnection.getResponse(MockMvcWebConnection.java:111)
at org.springframework.test.web.servlet.htmlunit.MockMvcWebConnection.getResponse(MockMvcWebConnection.java:96)
at org.springframework.test.web.servlet.htmlunit.DelegatingWebConnection.getResponse(DelegatingWebConnection.java:68)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1357)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1274)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:382)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:304)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:451)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:436)
Iは、ばね試験htmlunitからHTMLUnitバージョンを除くと、最新バージョンを追加しようとしました。私は、thymeleafテンプレートのコンパイルに必要なnekoHTMLの依存関係も持っています。
関連のpom.xml
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.21</version>
</dependency>
<dependency>
<groupId>org.springframework.test.htmlunit</groupId>
<artifactId>spring-test-htmlunit</artifactId>
<version>1.0.0.RC1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
問題のあるコール
HtmlPage page = webClient.getPage("http://localhost:8080/");
ここでは、推移的な依存関係が導入されている可能性が高いため、ここでは依存関係が矛盾しています。これらのケースでは、依存関係プラグインが非常に便利であることがわかりました。つまり、「mvn dependency:tree」です。それは依存関係のツリーを表示します。これはあなたに役立ちますので、クラスパスでは望ましくないバージョンに対して明示的に除外を追加することができます。またhttps://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.htmlを見てください。 – Kristoffer