MDB 内のヘルパー クラスによって使用されるリソース依存関係を宣言しています。
@MessageDriven(name = "BazaarBillingMDB", mappedName = "jms/EJB3Queue", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destinationName", propertyValue = "jms/EJB3Queue") }
)
@Resource(name="EJB3Source",mappedName="jdbc/EJB3Source",type=javax.sql.DataSource.class)
public class BazaarBillingMDB implements MessageListener {
public void onMessage(Message message) {
try {
TextMessage msg = (TextMessage) message;
String order = (String) msg.getText();
try {
bazaarhelper helper=new bazaarhelper();
helper.insertBilling(order);
}
....
}
ヘルパー クラス (bazaarhelper) は、このデータソースへのハンドルを取得しようとします。
try {
context=new InitialContext();
dataSource = (DataSource)context.lookup("java:comp/env/EJB3Source");
conn = dataSource.getConnection();
ただし、ヘルパー クラスがデータソースへのハンドルを取得しようとすると、常に NamingException に直面します。ただし、このデータソースは別の EJB にリソースとして注入されると正常に機能します。ヘルパー クラスがリソースに到達できるようにするには、何をする必要がありますか?