Я использую Maven и JBehave для теста интеграции. Я также использую плагин tomcat7 maven, который запускается до запуска интеграции, чтобы я мог писать jBehave истории, которые попали в мой api.Maven + tomcat7-plugin + JBehave + WireMock
Теперь я пытаюсь включить Wiremock, потому что у меня есть внешние HTTP-вызовы, которые я хотел бы высмеять, wiremock кажется идеальным решением.
Я бы предпочел не писать какой-либо макет-заглушку в java, и я видел в документе Wiremock, что есть автономный режим, в котором вы просто помещаете свои файлы и сопоставляете их в папку, в которой я проводю макет, когда это необходимо.
Я включил это в моей pom.xml
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
<version>1.57</version>
<classifier>standalone</classifier>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
, но когда я запускаю тест интеграции я получаю это
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext"
встроенный tomcat7 не запускается. Может ли кто-нибудь помочь мне настроить проводку в автономном режиме с помощью maven?
Ошибка java.lang.LinkageError возникает в ситуации, когда есть два загрузчика классов, связанных с загрузкой класса. Я столкнулся с этим вопросом весной – soorapadman