2012-01-23 2 views
0

Можно ли позвонить @Datasource проницательность OSGI комплект? Я настроил пул соединений на сервере Glassfish 3.1.1. Я могу делать запросы из простого приложения JSF. Это исходный код жгутов: http://www.2shared.com/file/H8kNkMrI/SH_27.htmlКак назвать источник данных в пакете OSGI?

Это исходный код, который я пытаюсь написать:

package org.DX_57.osgi.SH_27.impl; 

import javax.activation.DataSource; 
import javax.annotation.Resource; 
import org.DX_57.osgi.SH_27.api.SessionHandle; 

public class SessionHandleImpl implements SessionHandle { 

     public String error_Message = null; 
     public String error_Database = null; 

     /** Call the Oracle JDBC Connection driver */ 
     @Resource(name="jdbc/Oracle") 
     public DataSource ds; 

    public String sayHello(String name) { 
     return "Howdy " + name; 
    }      
} 

Когда я пытаюсь скомпилировать код с Netbeans появляется эта ошибка:

[bundle:bundle] 
Bundle org.DX_57.osgi.SH_27:SH_27-impl:bundle:1.0-SNAPSHOT : Unresolved references to [javax.activation, javax.annotation] by class(es) on the Bundle-Classpath[Jar:dot]: [org/DX_57/osgi/SH_27/impl/SessionHandleImpl.class] 
Error(s) found in bundle configuration 
------------------------------------------------------------------------ 
Reactor Summary: 

SH_27 ............................................. SUCCESS [0.639s] 
SH_27-api ......................................... SUCCESS [5.162s] 
SH_27-impl ........................................ FAILURE [1.930s] 
------------------------------------------------------------------------ 
BUILD FAILURE 
------------------------------------------------------------------------ 
Total time: 8.950s 
Finished at: Mon Jan 23 15:59:42 EET 2012 
Final Memory: 18M/47M 
------------------------------------------------------------------------ 
Failed to execute goal org.apache.felix:maven-bundle-plugin:2.3.6:bundle (default-bundle) on project SH_27-impl: Error(s) found in bundle configuration -> [Help 1] 

Вы знаете, что мне не хватает?


Update: Bundle плагин не может видеть javax.annotation и javax.activation классов, пытаясь вычислить OSGi манифест моей пачки и решить, что пакет в þér банки. Я должен исправить pom.xml. Это исходный код пакета OSGI.

Как мне восстановить файл POM?


Update 2: Это полный стек ошибок из Netbeans:

http://pastebin.com/R2hnRHVW

И это файл POM:

http://pastebin.com/Tc1gJiwU

бы вы мне помочь исправить файл POM?

+0

Просто проверка на работоспособность: вы уверены, что он должен быть 'javax.activation.DataSource' ?. Комментарий подразумевает, что он скорее должен быть 'javax.sql.DataSource'. –

ответ

0

Не знаете, как вы запускаете фреймворк, для felix это может помочь, если вы укажете javax.activation (и другие пакеты, которые вам нужны) в пакетах bootdelegation; Используйте org.osgi.framework.bootdelegation в framework.properties.

+0

Является ли это правильным способом рассказать о пакете OSGI для сбора данных? @Inject @OSGiService (true, "(jndi-name = jdbc/Oracle)") DataSource ds; –

+0

Задание javax.activation в bootdelegation - очень плохая идея! –

+0

Кроме того, @ user1103606 даже не может создать свой код, поэтому на этом этапе глупо говорить о настройках времени выполнения. –

Смежные вопросы