Im Moment spiele ich mit der Flex- und Java-Integration und versuche auf EJB3-Methoden zuzugreifen, indem ich auf die Flex-Schaltfläche klicke, aber es gibt mir einen Nullzeigerfehler. HierKann EJB nicht von FLEX (BlazeDS) anrufen
ist, was ich in meinem Code haben:
[Controller:]
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));
}
}
...
}
[Remote-config.xml]
...
<destination id="homePageController">
<properties>
<source>homePageController</source>
</properties>
</destination>
...
[Flex App. Datei]
...
<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>
Das Programm funktioniert gut, wenn ich den Anruf zu EJB nehmen. Ich bin sicher, dass die Lösung einfach ist, aber ich kann es nicht herausfinden.
Übrigens verwende ich Glassfish als meine App. Server.
Ich hatte das gleiche Problem. Da es nur etwas war, mit dem ich herumalberte, gab ich endlich auf. Ich bin mir sicher, dass es etwas Dummes ist, was ich tat ... einfach nicht sicher, was –