Использование CXF с затмением - PullRequest
0 голосов
/ 19 января 2012

Я только начал изучать CXF.Я сделал проект архетипа Maven с помощью Eclipse.Когда я запустил сборку maven и развернул ее в JBoss, она работала нормально.

@WebService
public interface HelloWorld {
    String sayHi(String text);
}

@WebService(endpointInterface = "foo.HelloWorld" )

    public class HelloWorldImpl implements HelloWorld {

        public String sayHi(String text) {

            return new "Hello"+text;
        }
    }

Затем я создал класс Employee с именем и окладом в качестве поля с геттерами и сеттерами.И я просто изменил тип возвращаемого метода HelloWorld sayHi на Employee, и я возвратил объект Employee из HelloWorldimpl метод sayHi.

Затем он также работает нормально (я имею в виду, что я проверил его с помощью SOAP UI после изменения кодаЯ получаю XML сотрудника)

Где написан этот код преобразования.

Также я не нашел в коде cxf.xml и cxf-servlet.xml: (Где эти xmlхранится в коде)

<import resource="classpath:META-INF/cxf/cxf.xml" />
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

Пожалуйста, помогите мне понять это.

@ ŁukaszBachman Я получил файлы XML в файле CXF * .jar.

Что следуетЯ делаю, чтобы сделать расширение в этом проекте.Нужно ли добавлять компоненты в XML-файлы?

1 Ответ

0 голосов
/ 19 января 2012

вы, очевидно, используете CXF с Spring для импорта ресурсов, определенных в CLASSPATH.Это означает, что Spring попытается импортировать любой вид bean-компонентов, определенных в предоставленных двух файлах (cxf.xml и cxf-servlet.xml).

Classloader загрузит все библиотеки, определенные для вашего веб-приложения (/ WEB-Каталог INF / lib), когда контейнер сервлета запускает его.Затем запустится среда Spring (определена в /WEB-INF/web.xml).Когда Spring загружен, он попытается создать все Beans, определенные для вашего веб-приложения, поэтому он проанализирует ваш собственный контекст приложения, просто чтобы выяснить, что ему также нужно импортировать некоторый ресурс, расположенный в META-INF/cxf/cxf.xml в classpath.Таким образом, он будет искать его снова во всех библиотеках, расположенных в /WEB-INF/lib.

. Вот почему вы не видите эти два файла в своем проекте.Они предоставляются библиотекой CXF (cxf.jar).Возможно, вы захотите проверить это сами, просто откройте cxf.jar как обычный ZIP-файл и перейдите к /META-INF.

Последнее замечание: эти два файла предоставляются платформой CXF, так что вы, вероятно, этого не сделаетенужно изменить его.Вы могли бы просто взглянуть на это, если это поможет вам понять внутренности CXF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...