У меня есть мое веб-приложение Tapestry, которое предлагает полную функциональность CRUD для некоторого набора данных. До сих пор я использовал mocks для разработки и тестирования.Как использовать службы OSGi в Tapestry
Однако мне нужно заменить этот макет службой OSGi (с Felix).
Мои основные вопросы/вопросы:
- мне нужно вводить службу OSGi в мое приложение гобелен, и если да, то как сделать его?
- Предполагая, что он введен, существуют ли какие-либо методы его использования? Какие-то особые способы я должен назвать методами или что-то в этом роде?
- Нужно ли мне что-то делать с ним после того, как я вызвал методы, которые мне нужны, или это делается автоматически?
- мне нужно беспокоиться о
HttpService
ли (я посмотрел несколько жалоб по этому поводу, но не совсем понимаю)
Чтобы предоставить Вам некоторый контекст, это то, как я делаю это сейчас
public class MyPage {
...
@Inject
private MyDao dao;
...
@Property
private List<Entry> entries;
...
void onPrepareForRender() {
...
this.entries = this.dao.getAll()
...
}
...
}
То, что я хотел бы, чтобы заменить MyDao dao
с сервисом OSGi, который обеспечивает ту же функциональность, так что я могу использовать его в onPrepareForRender
способом, например.
Я могу с уверенностью предположить, что пакет OSGi, связанный с сервисом, уже будет запущен.
Остальная часть приложения выполнена в виде приложения OSGi. Я добавил/изменил материал в моем pom.xml (maven-bundle-plugin, добавил некоторые манифестные записи, как указано в http://www.javabeat.net/2011/11/writing-an-osgi-web-application/).
Однако все еще не работает.
Я пытаюсь преобразовать свою ВОЙНУ в WAB, кстати.
Спасибо заранее :)
EDIT: Проблема при преобразовании и развертывание из WAR в WAB
Когда я пакет моего веб-приложение, как war
материал отлично работает. Тем не менее, когда я упаковать его как bundle
, и попытаться развернуть его в GlassFish, я получаю следующее сообщение об ошибке: Произошла
Ошибки во время развертывания: Там нет установленного контейнера способен обрабатывать это приложение админы-войну. Пожалуйста, обратитесь к server.log для получения более подробной информации.
Когда я иду в Server.log, вот что он говорит:
[#|2013-08-27T17:11:57.600+0200|INFO|glassfish3.1.2|org.glassfish.admingui|_ThreadID=28;_ThreadName=Thread-2;|uploadFileName=admin-war-2.01-SNAPSHOT.jar|#]
[#|2013-08-27T17:11:57.920+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:57.939+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=33;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:57.972+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:57.973+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:57.974+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:57.990+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:57.991+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:58.006+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:58.008+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:58.008+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:58.024+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:58.025+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.com.sun.enterprise.deploy.shared|_ThreadID=29;_ThreadName=Thread-2;|DPL8031: Ignoring WEB-INF/ because the containing archive C:\glassfish3\glassfish\domains\domain1\applications\admin-war recorded it as a pre-existing stale file|#]
[#|2013-08-27T17:11:58.026+0200|SEVERE|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=29;_ThreadName=Thread-2;|Module type not recognized for module C:\glassfish3\glassfish\domains\domain1\applications\admin-war|#]
[#|2013-08-27T17:11:58.026+0200|SEVERE|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=29;_ThreadName=Thread-2;|There is no installed container capable of handling this application admin-war|#]
[#|2013-08-27T17:11:58.087+0200|INFO|glassfish3.1.2|org.glassfish.admingui|_ThreadID=28;_ThreadName=Thread-2;|Exception Occurred :Error occurred during deployment: There is no installed container capable of handling this application admin-war. Please see server.log for more details.|#]
__Я могу с уверенностью предположить, что пакет OSGi, связанный с сервисом, уже будет запущен .__ Вау! Магия! Сделано невозможное! :-) –
Ну, вот что они меня заверили: P – Lopina
Ahh, тогда у меня есть хороший мост для продажи, хорошая недвижимость, расположенная в Нью-Йорке. Действительно дешево. :-) –