1 2 Previous Next 15 Replies Latest reply on Jun 13, 2005 4:24 PM by fabcipriano

    JSR88 problems

    isidorkin

      Hello
      I failed to deploy J2EE application to JBoss using JSR88.
      As I can see in sources not all of JSR88 interfaces are implemented.
      for example in DeploymentConfigurationImpl all getters just return null.

      Can you suggest some workaround for this issue?
      Ivan.

        • 1. Re: JSR88 problems
          dimitris

          Yes, that's right, only a subset of JSR-88 has been implemented. The workaround is to volunteer and implement it, if you really need it :)

          Another option is to wait for the new admin console that will offer deployment features (not jsr-88 necessarily).

          You can also hand code your deployments using the MainDeployer.deploy(URL) api.

          Finally, if you want to generate descriptors, there is a DeploymentService prototype:

          http://www.jboss.org/wiki/Wiki.jsp?page=DeploymentService

          • 2. Re: JSR88 problems
            isidorkin

            Do you know somebody who has really used JSR88 in JBoss
            or it was included only for appearance?

            • 3. Re: JSR88 problems
              dimitris

              It's used in the j2ee 1.4 certification testsuite, to allow deployment of modules/tests. This doesn't require the full set of functionality to be provided.

              Are you using some jsr-88 compliant GUI or you use the api directly?

              • 4. Re: JSR88 problems
                isidorkin

                I use IDE that have full JSR88 API implementation, so I expected easily integration IDE vs JBoss for deploying my applications.

                Do you know when full implementation of JSR88 in JBoss expected?

                • 5. Re: JSR88 problems
                  dimitris

                  Please, vote for it:

                  http://jira.jboss.com/jira/browse/JBAS-1627

                  This is also related to:

                  http://jira.jboss.com/jira/browse/JBIDE-160

                  What's your IDE?[/url]

                  • 6. Re: JSR88 problems
                    isidorkin

                    I use NetBeans 4.1

                    • 7. Re: JSR88 problems
                      isidorkin

                      Hello,

                      I use MainDeployer for deploying.
                      Is it OK that application deployed to server/tmp/deploy dir and gone after server restarting?

                      • 8. Re: JSR88 problems
                        dimitris

                        Yes, that's the intended behaviour, MainDeployer deployes the URL 'temporarily'. The copy in tmp is made to avoid locking the original file.

                        • 9. Re: JSR88 problems
                          isidorkin

                          Is there any way to perform "permanent" deployment using MainDeployer. Any additional paramaters for MainDeployer.deploy call? Or copying jars to deploy dir is the only way to deploy modules permanently?

                          • 10. Re: JSR88 problems
                            dimitris

                            Not through the MainDeployer. Having the modules in ./deploy (where the Scanner can find them) is currently the only way.

                            In the DeploymentService prototype we recently added a uploadLibrary(URL src, String filename) method, it would be easy to add a similar uploadModule(url, filename). This works fine as long as the client and the server share the same file system, or the client is able to "serve" the URL.

                            • 11. Re: JSR88 problems
                              genman


                              For a previous project, I added a virtual stream handler. Within the same URL, the URLStreamHandler returns a stream pointing to some object in memory. This works fine in JBoss:

                              
                               public static URL create(String filename, byte b[], String ct) {
                               VirtualStreamHandler vsh = new VirtualStreamHandler(b, ct);
                               return new URL("mem", null, 0, filename, vsh);
                               }
                              
                               class VirtualStreamHandler extends URLStreamHandler {
                              
                               private byte b[];
                               private String ct;
                              
                               public VirtualStreamHandler(byte b[], String ct) {
                               this.b = b;
                               this.ct = ct;
                               }
                              
                               protected URLConnection openConnection(URL u) {
                               return new URLConnection(u) {
                               public void connect() {
                               this.connected = true;
                               }
                               public InputStream getInputStream() throws IOException {
                               return new ByteArrayInputStream(b);
                               }
                               public String getHeaderField(String s) {
                               if (s.equalsIgnoreCase("content-type")) return ct;
                               return null;
                               }
                               };
                              
                               }
                              
                               }
                              


                              • 12. Re: JSR88 problems
                                fabcipriano

                                Dimitris,

                                I make some workarounds to JSR88 (http://jira.jboss.com/jira/browse/JBAS-1870). But to make this workaround I have to fix some problems with MainDeployer(http://www.jboss.org/index.html?module=bb&op=viewtopic&t=64863)

                                I´d like to help with JSR88. Is there some form to do it ?

                                Thanks,
                                Fabiano.

                                • 13. Re: JSR88 problems
                                  dimitris

                                  The code addition looks ok:

                                  boolean isRunning = DeploymentState.STARTED == info.state;
                                  TargetModuleID tmid = new TargetModuleIDImpl(this, module, null, isRunning);
                                  


                                  I would guess that the reason STOPPED and DESTOYED is not set, is because this is almost always performed when the ejb gets undeployed, so the module is gone anyway :)

                                  Also a jsr88.stop currently doesn't have an implementation (LocalHostTarget, JMXTarget), so even if you update the deployer code, nothing will happen :)

                                  If you want to contribute missing pieces of jsf88, that would be great.


                                  • 14. Re: JSR88 problems
                                    fabcipriano

                                    I had to change the MainDeployer to export a MBean stop(String urlspec) method so that the implementation of JSR-88 stop method works now.

                                    It was necessary to change the getRunning etc, to return only the ModuleTypes required by the JSR-88. But I´m still have problems with this. I think that the better solution is add more fields to SerializableDeploymentInfo and DeploymentInfo , but I dont have a complete undertanding of JBoss code so I dont know what problems this can or cannot cause. So I only changed the JMXTarget and TargetModuleIDImpl code.

                                    For a while this changes was all that I needed to implement my GUI deployment using JSR-88 JBoss plug-in(only distribute, undeploy, start, stop).

                                    Regards,
                                    Fabiano.

                                    1 2 Previous Next