Jboss Eos

0 views
Skip to first unread message

Agalia Valcin

unread,
Aug 3, 2024, 5:53:31 PM8/3/24
to centblunnetne

I'm new to JBoss and have been playing around with JBoss and JBoss Tools to develop a test web applikation. I have followed some kind of guide in installing JBoss (6.0.0) and latest Eclipse (Galileo) and installing JBoss Tools with Eclipse. I have also installed Java 6 JDK.

I made a JSF project and added some jsp-pages and a backing bean. I builds OK but it does not deploy to the server. I select 'Run on server' and the server starts up (default configuration from the fresh istalled JBoss) and it tries to find the jsp page (with jfs extension) but all I get is a 404 page.

By default JBoss AS Adapter uses .metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss-AS-5.1.0.GA/deploy folder to deploy your project and then registed this temp folder in JBoss AS throug JMX. It might not working properly for JBoss 6.0.0. I would try direct publishing to server deploy folder:

But is an issue with JBoss AS adapter anyway, so I've created JIRA issue to track it -6080, so if you have anything that would help to fix it leave your comments here or in JIRA. Thanks for your post

I had encountered the same problem , I went through your sugestions and I was able to execute my index.html. But now I am having a different problem, I do not know how to instruct JBOSS where my library with the jars files ( I am trying to integrade JBOSS with SPRING). I do have lib directory under WEB-INF, but I do not think that JBOSS sees it. When I select eclipse option RUN AS->RUN CONFIGURATION, JBOSS entry is not present in there, like TOMCAT for example. If that entry would have been present in there, then I would be able to set the class path. I am new to JBOSS, so it is kind of chalenging for me to figure out on my own how to configure it since it is not set up in a standard way like other servers.

There is nothing different between how JBoss or Tomcat sees your jar's in web-inf/lib. They are automatically picked up if using JEE 5/6, if using earlier then you have to refer to them from manifest.mf.

If you are missing JBoss in "Run As.." but have a Tomcat there then i'll assume is because you only added a Tomcat server and have not yet added a JBoss Server ( you do that via File > New> Server and then choose JBoss Enterprise or Community server depending on what you have available to you).

As my profile shows I a newbie and in need of help. I've used JBoss 4 and JBoss 5 for some time. To install my application I simply put it an html file into ROOT.war (home\server\default\deploy\ROOT.war in JBoss 5. I would then launch it with :8080/directoryname/app.html.

I now need to do the same thing with JBoss AS 7. There is, however, no ROOT.war directory. How do I use the default ROOT with AS 7? I tried creating a ROOT.war folder in jboss-home\standalone\deployments, but that didn't work. There must be more to it. Can someone please tell me what I need to do?

Did your war actually deployed? If your ROOT.war is a directory (exploded war mode), then you need to create an empty file name "ROOT.war.dodeploy" to tell JBossAS to deploy it. I think JBossAS will only auto deploy packaged single .war file only.

So finally my app deploys without errors but now I cannot seem to access any of my Jersey resources. Jetty 8 works fine, however. I also was able to run Jersey 1.x without having to take steps #2 and #3 but I would prefer to use Jersey 2.x if possible.

Additionally I've also tried creating a jboss-deployment-structure.xml file, but then I encounter the previous errors like "java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;"

If you're clustering your application servers or wanting to use distributed transactions among multiple application servers, then you should use . Note that both and handle distributed transactions involving multiple data sources. The difference is that handles them only within a single running application server, whereas handles them among many running application servers.

Before reading the book I thought, that I have to use xa-datasources in cases where one transaction spans multiple datasources. For example a method consuming a JMS message and manipulating a JPA Entity. Regardless of wheter I use a cluster or not.

At the time that I wrote this text I checked this with the JBoss engineers and that is what they stated - the XA data source is required only when multiple JBoss AS instances are involved, or when you have JBoss AS and some external service all managed by a transaction manager. Two-phase commit within a single JBoss AS instance is handled by the local data source.

Regarding my question I am still not totally convinced. I don't want to be annoying, but perhaps you mixed two aspects of transactions in JBoss when writing the book or discussing with the jboss engineers. I did a lot of research to get the whole picture and right now I guess the following:

There are local-tx-datasources and xa-datasources. local-tx-datasources can be used if there aren't any transactions spanning multiple transactional resources. As soon as you use two or more transactional resources in the same transaction e.g. a transactional session bean method manipulating JPA entities and producing JMS messages, you must use xa-datasources for the transactional resources.

If you use xa-datasources you need a transaction manager to coordinate the resources (with 2PC). This wiki page and this -US/JBoss_Enterprise_Application_Platform/5.0.1/html/Administration_And_Configuration_Guide/transaction.html#id2524403 guide state, that there are two different implementations or modules for this transaction manager. The JBossTS JTA module for local-only transactions and the JBossTS JTS module for distributed transactions. Both are capable to handle multiple XA resources but JBoss JTS can handle distributed transactions spanning multiple VMs and JBossTS JTA can only handle transactions in a single VM. In case of jboss clusters I'm not sure if every cluster configuration needs JBoss JTS. I would guess that in a homogenous cluster JBoss JTA is sufficient because a transaction startet by a transaction manager on a certain cluster node does not leave this node and thus stays in a single VM.

I think that some of the discussion took place in the JBoss Transactions forum, but that was 3 or 4 years ago (wow, was it really that log ago when I started working on the book..) but I can't find the thread. Though there were some teleconferences - my team at the time was contemplating some possible work with the transaction service, I'm pretty sure that Mark Little was involved (or maybe I just remember that from an even earlier meeting with Arjuna), not sure who else was involved. Of course, it is very possible that I misinterpreted what was said.

This means that when dealing with multi datasources within a single JTA transaction, one of them is allowed to be a non-XA datasource. I explicitly tested this on JBoss AS 5.1 with one XA JDBC datasource and one local TX JDBC datasource, as well as with one XA JMS connection factory (the standard java:/JmsXA one) and local TX JDBC datasource.

Would it then be more efficient to use a local-tx-datasource for the resource that is used 95% of the time and rely on Last Resource Commit Optimization, or would JBoss AS be smart enough to do an efficient one-phase optimization in those cases where there is only one participant in the transaction?

I suspect the reason Weblogic gets chosen is a pleasant sales person comes to visit a manager with money to spend, gives him the sales pitch and hey-presto, the company is using Weblogic. I don't know if the JBoss support contract comes with a sales force, but would be surprised if it did and that the playing field has leveled in that respect.

In my experience, other than the pretty console you get with Weblogic (which isn't worth forking out the license fees for) there's not much between the 2. I suspect these days JBoss has market share (just guessing that), which in my book that translates into more help available online, etc when you're stuck on something.

It's also worth considering that the Weblogic licenses (last time I saw them) where the usual server-side terms - per-processor, per-box, etc. This will limit you in scalability terms because with JBoss you can keep adding hardware without occurring extra cost, while with Weblogic your licenses will need upgrading too.

I really like WebLogic. I'll suspend the licensing cost for the moment and just say that in their heyday they were the best Java EE app server on the market, hands down. BEA had a lot of extremely talented people developing their code, and it showed. If money was not part of the equation, and I had an employer that insisted on spending money that wasn't mine, I'd still choose WebLogic over WebSphere or JBOSS or Glassfish or anything else on the market.

I'm saddened by Oracle's purchase. I think that the talent has leaked away, and Oracle has no clear idea of what they want to do with WebLogic. They've been stuck on version 10.1 for a few years now.

2018 update: My affection for Java EE as a standard and its app server implementations has cooled in the last nine years. I think a better answer is to go with Spring Boot. Deploy an executable JAR on a JVM and never worry about a Java EE app server again.

There are a couple of problems with the above comment. First, Oracle only purchased BEA 1.5 years ago, and even then that wasn't a DOJ approved transaction. The final sale was not approved until something like 12 months ago.

Lastly, I think Oracle is - surprised to say that I am - moving in a clear direction. With the recent acquisition of Sun, Oracle is now the primary provider of Java technology and has what many consider to be the leading Java application server. They would not have invested in these companies and technologies without a clear plan to dominate the market. I think Oracle's recent movements in the Java EE 6, WebLogic, and JDeveloper spaces show that they are pushing extremely hard to become the Java leader.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages