私はGlassFishツールバンドルfor Eclipseを使用しています。アプリケーションクライアントEJB Eclipse Glassfish
私はそれをテストするBeanとクライアントを作成する必要があります。 Bean(およびそのインタフェース)は次のとおりです。
package mykPK;
import java.math.BigDecimal;
import javax.ejb.*;
@Stateless
public class ConverterBean implements Converter {
private BigDecimal yenRate = new BigDecimal("115.3100");
private BigDecimal euroRate = new BigDecimal("0.0071");
public BigDecimal dollarToYen(BigDecimal dollars) {
BigDecimal result = dollars.multiply(yenRate);
return result.setScale(2, BigDecimal.ROUND_UP);
}
public BigDecimal yenToEuro(BigDecimal yen) {
BigDecimal result = yen.multiply(euroRate);
return result.setScale(2, BigDecimal.ROUND_UP);
}
}
インタフェース:
package mykPK;
import java.math.BigDecimal;
import javax.ejb.Remote;
@Remote
public interface Converter {
public BigDecimal dollarToYen(BigDecimal dollars);
public BigDecimal yenToEuro(BigDecimal yen);
}
私はEJBプロジェクトでそれらを正しく作成して、 "サーバとして" それらを実行します。すべてが正しく始まるようです。
今、クライアントを作成したいと思います。 私は別のプロジェクト( "アプリケーションクライアントプロジェクト")を作成したり、2つのサブプロジェクトでより一般的な "Eアプリケーションプロジェクト"を作成して、同じプロジェクトの内部にクライアントを置こうとしました。結果は同じです。
さて、クライアントコードがある私は、このファイルを実行すると、私はいつも同じ取得
import java.math.BigDecimal;
import javax.ejb.EJB;
import mykPK.Converter; /*of course to to that, i reference in the client project the
EJB project*/
public class ConverterClient {
@EJB private static Converter converter;
public ConverterClient(String[] args) {
}
public static void main(String[] args) {
ConverterClient client = new ConverterClient(args);
client.doConversion();
}
public void doConversion() {
try {
BigDecimal param = new BigDecimal("100.00");
BigDecimal yenAmount = converter.dollarToYen(param);
System.out.println("$" + param + " is " + yenAmount
+ " Yen.");
BigDecimal euroAmount = converter.yenToEuro(yenAmount);
System.out.println(yenAmount + " Yen is " + euroAmount
+ " Euro.");
System.exit(0);
} catch (Exception ex) {
System.err.println("Caught an unexpected exception!");
ex.printStackTrace();
}
}
}
次
Caught an unexpected exception!
java.lang.NullPointerException
at ConverterClient.doConversion(ConverterClient.java:17)
at ConverterClient.main(ConverterClient.java:12)
を、私は私のクライアントが同じではありませんbeacauseこれがあるとしコンテナ、そしてそれは "デプロイされていません"(私は単にファイルを実行します)。しかし、私がより一般的な "エンタープライズアプリケーションプロジェクト"を試したところ、結果は同じでした)
クライアントを配置し、どこにBeanへのアクセス(@EJB
)を与えますか?
私は実際にappclientを実行する方法を説明していないと思います... – Thufir