При запуску програми від Eclipse вона працює добре.
Запускаючи його поза Eclipse, я отримую таке:
java.lang.ClassFormatError: Duplicate method name&signature in class file [Class Name]
Клас, про який йде мова, реалізується з інтерфейсу, а програма має декілька інших класів, що поширюються на клас, зазначений у помилці.
Що це викликає і як це виправлено?
Відповіді:
2 для відповіді № 1Викидається, коли Java Virtual Machine намагається прочитати файл класу та визначить, що файл неправильно чи іншим чином не може бути інтерпретований як файл класу.
http://docs.oracle.com/javase/7/docs/api/java/lang/ClassFormatError.html
Javadocs - ваш друг.
2 для відповіді № 2
У мене було те саме питання. Як на мене, першопричиною було те, що плагін aspejj збирає джерела два рази. Клас "Аспект" залишається в модулі "service" і компілюється з плагіном аспектуJ. І тоді він вже компілюється в модуль "web" верхнього рівня як залежність і знову відповідає (оскільки модуль "service" був як "weaveDependency" у "web" модулі "configJ plugin config"). Рішення: Я замінив наступну конфігурацію в модулі "web"
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.5</version>
<configuration>
<weaveDependencies>
<weaveDependency>
<groupId>com.taxi.core</groupId>
<artifactId>service</artifactId>
</weaveDependency>
</weaveDependencies>
</configuration>
з
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.5</version>
<configuration>
<aspectLibraries>
<aspectLibrary>
<groupId>com.taxi.core</groupId>
<artifactId>service</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
0 для відповіді № 3
Google і виявили, що відключення функції "Розгортання на збереження" може допомогти подолати проблему. Спробуйте на тестовій платформі і вирушайте на виробництво!