Я пытаюсь следовать этому Apache CXF – JAX-WS – Simple Tutorial, но, строящей скачана образца создает клиент, который при вызове отказывается работать, выдав эту ошибку:ClassNotFoundException: (! Из коробки) org.springframework.context.support.AbstractApplicationContext
Failed to load Main-Class manifest attribute from SampleWSCxfClient-0.0.1-SNAPSHOT.jar
Я искал, чтобы узнать больше об этой проблеме и выяснил this SO answer, которые побудили меня взломать SampleWSCxfClient-0.0.1-SNAPSHOT.jar, открыв его с помощью 7-zip
и добавления в имя файла META-INF/MANIFEST.MF
следующая строка:
Main-Class: com.areyes.sample.client.SampleWSClient
я понял, что главный класс, просто посмотрев на единственный файл Java в проекте:
package com.areyes.sample.client;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.sample.service.SampleWebService;
public class SampleWSClient {
public SampleWSClient() {
ClassPathXmlApplicationContext classPathXmlAppContext = new ClassPathXmlApplicationContext("classpath:META-INF/beans.xml");
classPathXmlAppContext.start();
SampleWebService sampleWebService = (SampleWebService)classPathXmlAppContext.getBean("client");
System.out.println(sampleWebService.getDataFromWebService().getName());
System.out.println(sampleWebService.getDataFromWebService().getDescription());
System.out.println(sampleWebService.getDataFromWebService().getAge());
}
public static void main(String[] args){
new SampleWSClient();
}
}
Затем я попытался снова вызвать SampleWSCxfClient-0.0.1-SNAPSHOT.jar, но на этот раз он не с:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/support/AbstractApplicationContext
Caused by: java.lang.ClassNotFoundException: org.springframework.context.support.AbstractApplicationContext
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.areyes.sample.client.SampleWSClient. Program will exit.
Как сделать этот образец работы?
Для вашего удобства весь образец пакет ZIP можно загрузить с here.
Просто чтобы проверить: вы используете Maven для его сборки, не так ли? –
@JoeRinehart Да, я знаю. и 'pom.xml' уже содержит зависимость« spring-context ». Фактически вы можете увидеть весь пакет проектов дословно [здесь] (https://dl.dropboxusercontent.com/u/1737239/SampleWSCxf.zip). Почему полный учебный пакет не работает из коробки вне меня. Благодаря! – Introspective
Да, это то, что меня бросило - я загрузил его, и он прямо там, в POM. Как вы пытаетесь запустить его/что создает classpath, чтобы включить все? –