5 Replies Latest reply on Feb 20, 2006 1:19 AM by sushant248

    Questions about running applications on Jboss

    anselmolsm

      Hi,

      I´m studying about Jboss because the company where I work probably will use it. My boss asked me to learn about Jboss and one of his questions is:

      Can I run non-Java applications on Jboss? Is there an interface that I can use to communicate an program (imagine a client-server program) written in C++, for example, with Jboss?


      thanks

        • 1. Re: Questions about running applications on Jboss
          cybernd

          Corba might be able to fit your requirements.

          But the question is: What is necessary to be able to benefit from the smart client side stub doing the loadbalancing / failover?

          C++ =corba=> jboss
          will lose the failover capability or?

          Does anyone know how to get something like:
          c++ => smart rmi stub =rmi=> jboss

          thx
          Bernhard Neuhauser

          • 2. Re: Questions about running applications on Jboss

            I'm no expert but there appear to be a few options you may have.

            Firstly, since jboss is a java app you wont be able to run C++ code 'on jboss' (assuming you were asking if you can run C++ code upon the jboss platform, apologies otherwise).

            In general, since you're integrating legacy services you may have to bear in mind a few points such as firewall traversal, transaction context propogation (do you join client initiated transactions), reliability etc.

            As previously mentioned CORBA is an option (though firewall traversal used to be a problem?):
            http://www.jboss.com/developers/projects/jboss/IIOP

            Then you have the decreasingly granular options:

            Message Queuing: you could integrate into jboss (eg) MQSeries or Active MQ which have non-jms/jms client API's in C++ or .Net languages for example - not sure about jbossMQ though maybe you could use a non-java JMS client.

            There's also the JCA (see: http://www.jboss.com/wiki/Wiki.jsp?page=JBossJCA) which would allow JBoss to integrate with legacy services - there's a list of criteria on the web site that will help you to choose between JCA and JMS.

            Then of course you could front your JBoss application with a webservice. You may need to ponder performance and transaction handling with this one of course.

            Then you could go for a third-party Enterprise Service Bus - though I'd think long and hard and check your pockets first.

            Unfortunately there are often more questions than answers when it comes to integrating applications. Your architectural requirements will be key (I would check-out some of the architectural patterns in this area) and you have to bear-in mind ownership of course.

            In short, you can integrate jboss with a C++ client (the JMS option may be easiest to prototype first) but a lot rests upon your system structure/size etc.

            Cheers.

            • 3. Re: Questions about running applications on Jboss
              arunkumar443

              org.jboss.deployment.DeploymentException: No META-INF/application.xml found

              • 4. Re: Questions about running applications on Jboss
                arunkumar443

                Hi,
                while deploying ear file i am getting the error like



                org.jboss.deployment.DeploymentException: No META-INF/application.xml found

                please help me

                • 5. Re: Questions about running applications on Jboss
                  sushant248

                  Arun,
                  Did u check if application.xml exists in META-INF? It's worth if you can look into JBoss Admin pdf, where it says

                  The context root for an application is determined by how it is deployed. When a web application is deployed inside
                  an EAR file, the context root is specified in the application.xml file of the EAR, using a context-root element
                  inside of a web module. In the following example, the context root of the web-client.war application is set to
                  bank.

                  <application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://java.sun.com /xml/ns/j2ee
                  http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
                  <display-name>JBossDukesBank</display-name>

                  bank-ejb.jar



                  <web-uri>web-client.war</web-uri>
                  <context-root>bank</context-root>




                  For web applications that are deployed outside an EAR file, the context root can be specified in two ways. First, the
                  context root can be specified in the WEB-INF/jboss-web.xml file. The following example shows what the jbossweb.
                  xml file would look like if it weren't bundled inside of an EAR file.

                  <jboss-web>
                  <context-root>bank</context-root>
                  </jboss-web>

                  Finally, if no context root specification exists, the context root will be the base name of the WAR file. For webclient.
                  war, the context root would default to web-client. The only special case to this naming special name ROOT.
                  To deploy an application under the root context, you simply name it ROOT.war. JBoss already contains a ROOT.war
                  web application in the jbossweb-tomcat55.sar directory. You will need to remove or rename that one to create
                  your own root application.
                  Not sure, if this will help.
                  cheers