Migrate messaging security from Glassfish to JBoss 7 - java

I am new to JBoss 7. I have already done Messaging Security in Glassfish for my web application. I would like to move my application to JBoss 7.
Could anyone guide me to achieve Messaging security in JBoss 7?

JBoss 7 uses HornetQ as a message broker, so you need to look at its documentation. JBoss 7 has a very nice GUI console that enables to do quite a lot of administration tasks (but CLI interface gives access to more config options).
For a short introduction how to configure messaging on JBoss 7 with basic security setting see this article: http://www.techartifact.com/blogs/2012/10/jboss-as-7-setting-up-hornetq-jms.html.
If you need custom authentication/authorization, you need to create your custom security application realm: https://docs.jboss.org/author/display/AS71/Security+Realms

Related

Updating JBoss Remoting version 2 to 5?

I maintain a server client system build upon JBoss Remoting library version 2.5.0.SP2. The system consists a modular client, a central server which runs as registry/router and specialized servers which contains the application logic, database access, etc.
For the communication it implements java.lang.reflect.InvocationHandler with a java.lang.reflect.Proxy object on the client side (internally uses org.jboss.remoting.Client and org.jboss.remoting.InvokerLocator) and uses org.jboss.remoting.transport.Connector on the server side to publish the application logic.
The whole system is around 7 years old and it should be modernized, because some components got incompatible with JRE 7 and 8, like JBoss Serialization, and on the security side it lacks for the support of authentication.
I found out that JBoss Remoting is actively developed and updated to version 5, but it seems that there is no documentation about it since version 3. The developers of JBoss Remoting say April 2016 about the missing documentation in a issue on github:
[...] it has grown into a very internal project, used to underpin several of our services but generally hidden from users.
I used a sample client and server and updated it to run with JBoss Remoting 5.0.6 to check if it runs (gist with the source). I noticed while developing that the org.jboss.remoting.Client is gone and I didn't find inside JBoss Remoting anymore.
The developers of JBoss Remoting mentioned that it's possible to implement RCP over it (see quote above). I figured out that JBoss Remoting is part of the WildFly application server which uses it.
Is it possible to implement RPC like JBoss Remoting version 2 without using the whole WildFly application server (using EJB)? If yes, how?
If not, is there a good alternative for it?

Clarification in Spring

I'm starting to learn spring and I came across one definition which says "Spring enables developers to do enterprise development without an application server".
What does this exactly mean and what's the harm in using an application server for enterprise development.
But don't developers use tomcat while developing enterprise development and isn't Tomcat an application server.
I'm confused here.
Can someone clarify the two points mentioned above.
I think what's meant by "Spring enables developers to do enterprise development without an application server", is that you don't need a full Java EE application server like JBoss, WebLocic, WebSphere ... but can do everything with a 'simple' servlet container like Tomcat.
Springframework provides services like dependency injection, declarative transaction management and others which are provided by Java Application Server for Java EE applications. The difference is that Spring based app can work standalone while Java EE app can't. It may be the reason to favor Springframework over a Java AS.
Tomcat is a servlet container which implements only Servlet and JavaServer Pages specifications, Java Application Server is supposed to support all of Java EE specifications like EJB, JMS, JPA, JTA and many others

Are Tomcat 7 based Spring applications immediately portable to JBoss EAP6?

OpenShift offers the possibility to develop Spring based applications using JBoss EAP6. I am considering migrating a Spring application developed/deployed on Tomcat 7.
I have little experience with JBoss. Am I going to go through many troubles if I migrate my application? If yes which? Are Tomcat 7 and JBoss EAP6 compatible?
It depends entirely on your application.
The servlet container in JBoss 6 is based on Tomcat 6. If you are using any new features in Tomcat 7 (e.g. extensions in the Servlet 3.0 or JSP 2.2 spec), these will not run on JBoss 6.
The general response will be yes, JBoss will provide all the standard elments Tomcat does. But it is always possible to make it not compatible (using directly some tomcat class, JBoss Web use a different name space and there is no 1:1 corespondances).
I most cases you will need to make some litle addaptation (add some configuraiton and properties, change datasource name...).
JBoss AS7 documentation contains some Spring integration elements.
Some elments provided by default in JBoss may give you some trouble (like JPA), but if you have full controle on the application source, you should be able to get it working without lot of efforts.
Without inside on your application it will be difficult to give concreate effort estimate.

Is there a way to use WebSockets on IBM WebSphere Application Server?

I am migrating a web application based on Apache Tomcat 7.0.35 using the WebSocket Servlets to IBM WebSphere Application Server (WAS). The problem is that I don't think WAS supports WebSockets.
You can try the WebSphere Liberty 8.5.5.4 -- this supports WebSockets. See announcement here.
See also:
Liberty profile: Web Sockets
WAS doesn't support WebSockets as stated on an IBM forum here. What you can do is to investigate if you can deploy in WAS one of the WebSockets server implementations (check this list).
You can also try embedding the Jetty Web Server on the java application to run on your WebSphere Application Server - http://www.eclipse.org/jetty/documentation/current/embedding-jetty.html. Another option is to make use of a WebSockets implementation (e.g. Wabbit), or make use of an Application Server that supports the Java EE 7 specs, like IBM WAS 9.

Can I use JBoss MQ on JBoss 5? If so, how?

I have an application that was written on JBoss 3.2.5 and I am tasked with migrating it to JBoss 5.
I am unable to deploy the application because it relies on JBoss MQ, which I read has been replaced by JBoss Messaging.
Is there any way I can get the app to work on JBoss 5 without making any code changes? Config changes are OK.
Actually JBoss Messaging is already being replaced by HornetQ.
In JBoss Application Sever 6.0, HornetQ will be the default messaging provider.
http://jboss.org/hornetq/
Is there any way I can get the app to
work on JBoss 5 without making any
code changes? Config changes are OK.
Assuming that your code is written to the JMS API, then yes, you probably can. However, don't underestimate how different JBossMQ is from JBossMessaging, the configuration is completely different.
Depending on how hard your app pushes the JMS API, you may get behavioural differences, but the odds are you'll be fine, as long as you can reconfigure JBossMessages within JBoss5 appropriately.
Another option is to move to JBoss 4.2, which still has JBossMQ, but is miles ahead of JBoss 3.2. Much of the functionality that JBoss5 gives you can be done with JBoss 4 (e.g. it has partial JavaEE 5 support).
JBossMQ will be replaced by JBoss Messaging in JBoss AS 5.0.
A good starting point to find out how to migrate would be JBossMQ

Categories