Old EJB client backwards compatibility - jboss

I'm migrating old applications from JBoss EAP 6.4 to JBoss EAP 7.3 and I have a strange behaviour. I setup the remote connector on EAP 7.3 and both 2.1 and 3.x EJB applications are deployed, but if I try connect from an old client, having a very old jboss client jar (1.0.25.Final-redhat-1) I have some errors.
The 3.x applications work without problem and in JBoss EAP 7.3 I can see this log when a call arrives
INFO [org.wildfly.naming] (default task-1) Wildfly Naming version 1.0.11.Final-redhat-00001
For the 2.1 EJB application (that works without problem on the old JBoss EAP 6.4) I see this different log on the server console
INFO [org.jboss.ejb.client] (default task-2) JBoss EJB Client version 4.0.27.Final-redhat-00001
and from the client side I receive this error
INFO: Cannot create a scoped EJB client context for JNDI naming context org.jboss.ejb.client.naming.ejb.EjbNamingContext#abb9e4 since the current EJB client context selector can't handle scoped contexts
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy1.create(Unknown Source)
at com.test.ejbmigration.EjbRemoteClient.main(EjbRemoteClient.java:117)
Caused by: java.lang.ClassNotFoundException: org.jboss.ejb.client.EJBIdentifier
I found an old issue related to this problem that is quite similar
https://issues.redhat.com/browse/EJBCLIENT-51
but anyway I think it isn't the same situation. Using a new client with new library there is no problem, but in my scenario I have the possibility to have an EJB 2.x application in EAP 7.3 and old client calling it in the same way.
I would like to understand if the migration of old EJB 2.x applications to EAP 7.3 and remote call from old clients can be a problem or if there is some particular settings that can be done on the server to accept also the call from old client.

Related

Which Application Server is used by Quarkus Internally?

Like Spring Boot uses Apache Tomcat, Undertow and Jetty and i have worked on an assignment of same. So just trying to map understanding.
What application server is used by Quarkus?
I have created an application in server and found Jboss libaries, Arjuna Libraries for transaction
which is used by Jboss servers or wildfly servers. But i am not sure whether it is based on Jboss.
Can anyone please clarify?
In short, Quarkus can be thought of as its own application server. However, it is comprised of many open source libraries that have been around for a while, such as:
RESTEasy for JAX-RS
Undertow for the Servlet/Websocket engine
Netty for the network IO layer
Hibernate for JPA
The full set of extensions can be found on the Quarkus Starter website.

Confused by wildfly versions used in EAP 7.2

I would have added this to another thread, but I am unable to comment on other's posts. And what I read did not answer my question. I just installed EAP 7.2.0.GA. In the console log, it says:
JBoss EAP 7.2.0.GA (WildFly Core 6.0.11.Final-redhat-00001)
However, others think it is around version 13. And when I look at the releases of wildfly ( http://wildfly.org/downloads/ ) a version 6 is so old it does not even show up and would have been prior to 2014...
So, how can it be 6.0.11.Final?
WildFly core is just a component in WildFly application server.
As such is also used in JBoss EAP which is a downstream product based on WildFly AS.
WildFly core is standalone project which provides most of core capabilities (management, cli, administration, subsystem infrastructure...) of the application server without any Java EE support, that is added to it by WildFly project.
you can see the sources for both at
https://github.com/wildfly/wildfly-core/
https://github.com/wildfly/wildfly/
as for your confusion.
WildFly core 6.0.x is used in EAP 7.1 as well as in WildFly 14
which you an see also in the sources https://github.com/wildfly/wildfly/blob/14.0.0.Final/pom.xml#L375
micro version is not always exactly the same, as in the process of building downstream product of EAP, extra patches can be added.
WildFly Core is a component in JBoss Enterprise Application Platform 7 (EAP 7). So, this log means:
JBoss EAP 7.2 - JBoss EAP in version 7.2
GA - General availability
WildFly Core 6.0.11.Final - component WildFly Core in version 6.0.11.Final.
See also:
JBoss Enterprise Application Platform Component Details
Software release life cycle

Does Jboss 7.1 AS supports ejb 2.1?

it seems jboss AS 7.1 supports ejb 2.1.Our ejb 2.1 based application is deployed on jboss 5 AS. We are migrating it to jboss7.1. but i want to know what are the additional configurations required to run ejb 2.1 without any errors?
EJB2 is still supported in AS7.x, the issue might be that AS7 is a new implementation and some of the tuning options and configuations are not available for AS7 - especially the EntityBean CMP.
There are some added for EAP6 (based on AS7) you might download the unsupported version.
Wildfly (the successor of JBossAS) will not continue to support EJB2 EntityBeans because EJB3.2 declare it as optional.
Note EJB2 session beans are still supported but I recommend to upgrade it to EJB3 this should faily simple.
You might keep the EJB2 interfaces to provide an interface for EJB2 clients, but I expect effort for the client as well as the lookup Strings changed.
If the appliation should be kept for the future I would recommend to migrate to EJB3

migrating jsf application from weblogic10 to weblogic 12c

We are encountering issues while deploying the new core SDM modules (wars) in weblogic 12c version. The new SDM core module (wb-tss-core-sdm-web-war-0.9.1.war) uses the JSF ,SeamListeners & FacesServlet (version 1.2 jars) and we have found that the JSF 1.2 version is not directly compatible with the weblogic 12c version. Hence, the application deployment is failed with user defined listener conflict issue
As per Weblogic 12c documentation,
"WebLogic Server 12.1.1 has enhanced support for JSF and JSTL. In this
release, JSF 2.x and JSTL 1.2 have been incorporated directly in the
server's classpath. Your applications deployed to WebLogic Server can
seamlessly make use of JSF 2.x and JSTL 1.2 without requiring you to
deploy and reference separate shared libraries, as was the case in
previous releases. For backward compatibility, WebLogic Server
provides JSF and JSTL libraries that can be deployed and referenced by
applications. See Deploying JSF 1.2 and JSTL Libraries. "
We had tried to install the JSF 1.2 wars explicitly in the weblogic server path as per the documentation to support the backward compatibility and forced the SDM application/war to use the JSF 1.2 version jars by adding the below entries in the weblogic.xml .
<wls:library-ref>
<wls:library-name>jsf</wls:library-name>
<wls:specification-version>1.2</wls:specification-version>
<wls:implementation-version>1.2</wls:implementation-version>
<wls:exact-match>false</wls:exact-match>
</wls:library-ref>
But the deployment is failed again with FacesServlet listener issue as the "jsf-impl-1.2_04_P02.jar" jar is already part of (wb-tss-core-sdm-web-war-0.9.1.war) war .
Tried to add the following entries in the weblogic,xml to force the application to use the application specific jars/classes which are part of the application war file.
<wls:prefer-application-packages>
<wls:package-name>javax.faces.*</wls:package-name>
<wls:package-name>com.sun.faces.*</wls:package-name>
<wls:package-name>com.bea.faces.*</wls:package-name>
<wls:package-name>com.sun.facelets.*</wls:package-name>
</wls:prefer-application-packages>
After adding the above entries, the application deployment is completed successfully but have noticed the following errors in the console:
<BEA-101162> <User defined listener com.sun.faces.config.ConfigureListener failed: javax.faces.FacesException: org.jboss.seam.jsf.SeamApplicationFactory.
javax.faces.FacesException: org.jboss.seam.jsf.SeamApplicationFactory
Due to this above error, some of the Jasper file upload SDM screens are not accessible and it is getting failed with this error:
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.render.RenderKitFactory. Attempting to find backup.
How do we get past this?
We had the same issue during migration of JBoss Seam application from Weblogic 10.3.3 to Weblogic 12.1.1.
It was resolved by switching to Weblogic's default JSF 2.1.14 and updating Seam version to 2.3.
Hope this helps.
Not sure if you saw the longer discussion on this question:
Migrating JSF-Application to Weblogic 12
This helped me when analysing a similar library migration issues (hibernate was on my list).

Migration from Jboss eap 5.1 to jboss eap 6.1 - Clustered JMS topics

I am currently in the phase of migrating my Clustered Application from Jboss eap 5.1 to Jboss eap 6.1 (Jboss AS 7.1). The jboss eap 6.1 uses HornetQ as its JMS system as compared to Jboss eap 5.1 which used JBoss MQ as JMS system. My application has the requirement of using global and local JMS topics(distributed and non-distributed topics). On jboss eap 5.1, there is a configuration file in the messaging folder called 'xxx-destination-service.xml' which provided a boolean attribute called 'Clustered' defined for each of the JMS topics. This xml file and the attribute is no longer supported in jboss eap 6.1. Can anyone provide me pointers on how this can be done in jboss eap 6.1.
I am Clustering my application in Domain Mode on Jboss eap 6.1 . So please tell what configuration chnages need to be done in my domain.xml or any other xml file.
TIA for your help.
Ajit