Использование Metro, Netbeans и Tomcat7 для веб-сервисов
У меня есть два связанных вопроса:
(1) Как правильно разместить различные файлы Metro в каталогах Tomcat 7/JDK? Похоже, что автоматизированная процедура, предоставляемая Metro, не была обновлена для Tomcat 7.
(2) Есть ли способ создания веб-службы с использованием Metro и Netbeans и передачи сгенерированного файла.war NetBeans в Tomcat 7 БЕЗ редактирования какого-либо файла.xml?
Я должен использовать NetBeans 7.x и Tomcat 7.x. Я могу использовать любую версию Metro.
Казалось бы, на такой элементарный вопрос можно было бы легко получить ответ в Интернете, но даже учебник на сайте NetBeans, похоже, не работает.
Спасибо!
2 ответа
Вопрос: Как правильно разместить различные файлы Metro в каталогах Tomcat 7/JDK? Похоже, что автоматизированная процедура, предоставляемая Metro, не была обновлена для Tomcat 7.
Вы правы, процедура не была обновлена для Tomcat7. Тем не менее, вы можете использовать его без проблем, он создаст две директории в каталоге CATALINA_HOME:
/endorsed
(это будет положить там webservices-api.jar
)
/shared/lib
(это будет положить там webservices-extra-api.jar, webservices-extra.jar, webservices-rt.jar
а также webservices-tools.jar
)
Вопрос: Есть ли способ создания веб-службы с использованием Metro и Netbeans и передачи сгенерированного NetBeans.war-файла в Tomcat 7 БЕЗ редактирования любого XML-файла?
Обычно вы должны отредактировать web.xml и sun-jaxws.xml. Однако, поскольку вы используете Tomcat 7, который является контейнером Servlet 3.0, web.xml не нужен, и вам нужно иметь дело только с sun-jaxws.xml:
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
<endpoint
name="SERVICE_NAME"
implementation="full.qualified.name.of.the.implementation.class"
url-pattern="/SERVICE_URL"/>
</endpoints>
Кроме того, вы должны поместить sun-jaxws.xml в каталог WEB-INF.
Смотрите также:
Я не могу ответить на ваши два вопроса напрямую, вместо этого я могу рассказать вам, как я решил проблему.
Я использовал это простое руководство для установки библиотек jax-ws в tomcat (без Netbeans). Я не копировал jar-файлы в каталог $TOMCAT/lib, я скопировал их в каталог WEB-INF/lib внутри самого веб-приложения. Все остальное почти так же, как он описал в учебнике, и это работает.
Теперь на ваши вопросы:
(1) Я не знаю, как это сделать "правильным" способом. Но я думаю, что когда это работает, это не может быть неправильно. Я уверен, что есть лучшие практики для развертывания библиотек, но я просто не знаю их. Сожалею.
(2) К сожалению, я не использую Netbeans, поэтому я не могу вам здесь помочь. Но если вы подумаете об этом, я скопировал все библиотеки из ссылочной реализации jax-ws в мой каталог WEB-INF/lib, и я не коснулся ни одного XML, кроме тех, что были в моем каталоге WEB-INF. Теперь я могу создать файл войны из моего веб-приложения, и все готово. Думаю, не должно быть большой разницы для Netbeans.
Надеюсь, это поможет.