今、私はFlexとJavaの統合でプレイしていますが、FlexのボタンをクリックしてEJB3メソッドにアクセスしようとしていますが、nullポインタエラーです。ここでFLEX(BlazeDS)からEJBを呼び出せません
は、私は私のコードで持っているものです。
[コントローラー:]
public class homePageController {
@EJB
CategoryFacadeRemote categoryFacade;
public String populateDBWithXMLData(){
ArrayList<Category> cats = new ArrayList<Category>();
cats = new QuestionsUtil().getCategories();
try{
categoryFacade.createMany(cats);
}
catch(EJBException ex){
ex.printStackTrace();
}
System.out.println("SIZE: " + cats.size());
return "HIIIIII";
}
}
[CategoryFacade]
@Stateless
public class CategoryFacade implements CategoryFacadeLocal, CategoryFacadeRemote {
@PersistenceContext
private EntityManager em;
public void create(Category category) {
em.persist(category);
}
public void createMany(ArrayList<Category> categories){
for(int i = 0; i < categories.size(); i++){
create(categories.get(i));
}
}
...
}
[リモート-config.xmlの]
...
<destination id="homePageController">
<properties>
<source>homePageController</source>
</properties>
</destination>
...
[Flex App。ファイル]
...
<mx:RemoteObject id="hcRO" destination="homePageController"></mx:RemoteObject>
<mx:Script>
...
private function callHomePageController():void{
hcRO.addEventListener(ResultEvent.RESULT, hcROResultHandler);
hcRO.addEventListener(FaultEvent.FAULT, hcROFaultHandler);
hcRO.populateDBWithXMLData();
}
private function hcROResultHandler(eve:ResultEvent):void{
Alert.show("RESULT:" + eve.message.body.toString());
}
private function hcROFaultHandler(eve:FaultEvent):void{
Alert.show("FAULT:" + eve.message.toString());
}
]]>
</mx:Script>
<mx:Button x="148" y="222" label="homePageController" click="callHomePageController()" width="262" height="43"/>
</mx:Application>
私はEJBを呼び出す場合、プログラムは正常に動作します。私は解決策は簡単だと確信していますが、私はそれを理解することはできません。
ところで、私は自分のアプリとしてGlassfishを使用しています。サーバ。
私は同じ問題を抱えています。それはちょうど私が周りを乱していたものだったので、私はついに諦めました。私はそれが何かばかげていると確信しています...確かにわからない –