Bonjour tous,
Je cherche à faire communiquer des EJB java avec mon application Flex, dans le but à terme de remplacer la couche JSF d'un portail par du flex.
J'utilise un server Glassfish pour faire cela.
A priori j'ai choisit d'utiliser GraniteDS pour réaliser cela ( il m'a semblé que GraniteDS etait plus orienté EJB que BlazeDS...Si ce n'est pas le cas , je ne suis pas contre des avis avec BlazeDS voir un comparatif des deux :] )
Pour commencer donc j'ai suivis l'exemple que l'on trouve sur le site de graniteDS:
http://www.graniteds.org/confluence/...ternalization)
Toute fois une erreur persiste je ne trouve vraiment pas comment la corriger :
Je pense que l'erreur viendrait se fichier de config :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 [RPC Fault faultString="" faultCode="Could not lookup for: helloworld/HelloWorldServiceBean/local" faultDetail="nullorg.granite.messaging.service.ServiceException at org.granite.messaging.service.EjbServiceInvoker.<init>(EjbServiceInvoker.java:65) at org.granite.messaging.service.EjbServiceFactory.getServiceInstance(EjbServiceFactory.java:126) at org.granite.messaging.amf.process.AMF3MessageProcessor.processRemotingMessage(AMF3MessageProcessor.java:135) at org.granite.messaging.amf.process.AMF3MessageProcessor.process(AMF3MessageProcessor.java:59) at org.granite.messaging.amf.process.AMF0MessageProcessor.process(AMF0MessageProcessor.java:71) at org.granite.messaging.webapp.AMFMessageServlet.doPost(AMFMessageServlet.java:59) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.granite.messaging.webapp.AMFMessageFilter.doFilter(AMFMessageFilter.java:100) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Caused by: javax.naming.NameNotFoundException at com.sun.enterprise.naming.TransientContext.resolveContext(TransientContext.java:268) at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:191) at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:74) at com.sun.enterprise.naming.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:111) at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:409) at javax.naming.InitialContext.lookup(InitialContext.java:392) at org.granite.messaging.service.EjbServiceFactory.lookup(EjbServiceFactory.java:60) at org.granite.messaging.service.EjbServiceInvoker.<init>(EjbServiceInvoker.java:63) ... 39 more "] at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler() at mx.rpc::Responder/fault() at mx.rpc::AsyncRequest/fault() at NetConnectionMessageResponder/statusHandler() at mx.messaging::MessageResponder/status()
service-config.xml:
Au niveau de la balise lookup donc...Pour le reste mon projet est en tout point identique à celui du site.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <?xml version="1.0" encoding="UTF-8"?> <services-config> <services> <service id="granite-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage"> <destination id="helloWorldService"> <channels> <channel ref="my-graniteamf"/> </channels> <properties> <factory>ejbFactory</factory> </properties> </destination> </service> </services> <!-- <factories> <factory id="ejb3" class="com.adobe.ac.ejb.EJBFactory" /> </factories> --> <factories> <factory id="ejbFactory" class="org.granite.messaging.service.EjbServiceFactory"> <properties> <lookup>helloworld/{capitalized.destination.id}Bean/local</lookup> <!--<lookup> java:comp/env/Welcome </lookup> <lookup>java:comp/env/{capitalized.destination.id}Bean</lookup> testé ces deux facon de faire sans succes--> </properties> </factory> </factories> <channels> <channel-definition id="my-graniteamf" class="mx.messaging.channels.AMFChannel"> <endpoint uri="http://{server.name}:{server.port}/{context.root}/graniteamf/amf" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition> </channels> </services-config>
Partager