WSO2ESB - Spring mediator - spring

I have problem with creating Spring Mediator who have inside Web Service Client. This mediator is crashed when try initializing Web Service object.
Error is:
"Uncaught exception
{org.apache.axis2.transport.base.threads.NativeWorkerPool}
javax.xml.ws.spi.FactoryFinder$ConfigurationError: Provider
org.apache.cxf.jaxws.spi.ProviderImpl not found".
I tried to add jars like "cxf-rt-frontend-jaxws" but without result. (To 'WSO2_HOME\repository\components\lib')
WSO2ESB version is 4.8.1.
Could you please explain me how to solve this.

If the jars are OSGi bundles, you should put them into
<WSO2_HOME>\repository\components\dropins\

Related

Migrating Application from Tomcat V 8.5 to Websphere Application Server

When I am trying to deploy my war file from tomcat to websphere I am getting the following error.
1)org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.apache.cxf.bus.spring.SpringBus]: Constructor threw exception; nested exception is org.apache.cxf.bus.extension.ExtensionException: Could not load extension class org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.
2)org.apache.cxf.bus.extension.ExtensionException: Could not load extension class org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.
3)java.lang.IncompatibleClassChangeError: org.apache.neethi.AssertionBuilderFactory
I tried by changing the class loader from parent first to parent last(Vice-Versa).But still I am getting same error
Help me out.
There are potentially several issues with your app:
You probably include Java EE jars in your application - like jee.jar, servlet.jar etc - please remove all these jars from WEB-INF/lib directory.
It looks like you are bundling your own web services engine (CXF) inside your application. tWAS provides its own web services engine. So you either need to migrate to the provided or disable tWAS one. Check the Using a third-party JAX-WS web services engine page. You will need to set DisableIBMJAXWSEngine property and configure module classloader for your war to parent last.
I still would recommend migrating to Liberty if possible, instead of traditional.

Consider defining a bean of type 'org.springframework.social.twitter.api.Twitter' in your configuration

So I am following https://spring.io/guides/gs/accessing-twitter/ to connect my application to Twitter to get some user data. But it looks like with recent changes to Spring boot (version 2.0.3.RELEASE) and Spring-social-twitter, I am not able to execute the said article successfully. I keep getting following error:
Consider defining a bean of type 'org.springframework.social.twitter.api.Twitter' in your configuration.
Has anyone tried the same sample with new Spring boot release? What am I missing?

JSF 2.X on IBM Domino 9 (Servlet 2.5) - is it feasible at all?

Just curious whether it is possible to run JSF 2.3 on IBM Domino?
I have tried to deploy (JSF versions 2.0, 2.1, 2.2, 2.3) via the UpdateSite Plugin install following Sven's post HowTo: Vaadin on Domino. But was not really successful as got the following exceptions (listing from v2.3, but other versions are similar):
Unable to obtain InjectionProvider from init time FacesContext. Does this container implement the Mojarra Injection SPI?
Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory. Attempting to find backup.
Uncaught init() exception thrown by servlet {0}: {2}
CWPWC0005E: Error occurred while initializing servlet wrapper. javax.servlet.ServletException: Uncaught initialization exception thrown by servlet Thread[Thread-6,5,main]
CWPWC0005E: Error occurred while initializing servlet wrapper. javax.servlet.ServletException: Uncaught initialization exception thrown by servlet
Any suggestions what to adjust? I do understand that Servlet version could not match JSF spec, but is it feasible at all?
Thanks!
The short answer: don't bother
The long answer:
Domino modified quite some number of OSGi elements to run. The Domino JSF has been extended to include SSJS. So you fight with a lot of moving parts.
What you want to do:
put an nginx in front of your Domino on 80/443
run Domino on a different port only accepting 127.0.0.1 connections
run your Primefaces Websphere liberty Glasfish app on yet another port
have nginx redirects point to old/new server based on url
Users will see one server, https can be handled by nginx, you can have http2, offload static resources.
While you are on it: give vert.x a shot. Way more fun than JEE

glassfish 3.1.2 monitoring EJB container, bean-methods

the glassfish application server provides a nice monitoring REST interface.
To use it u can enable several monitorable items in the admin console, for example the EJB container. The documentation says, you can retreive EJB-statistics for every deployed application.
If you request a URL like localhost:4848/monitoring/domain1/server/applications/APPNAME/EJBNAME you will get statistics for a given EJB of the application.
Further, there is a possibility to look more deeply into each bean-method of the ejb, for example the executiontime, about which the documentation says:
"Time, in milliseconds, spent executing the method for the last successful/unsuccessful attempt to run the operation. This is collected for stateless and stateful session beans and entity beans if monitoring is enabled on the EJB container."
The problem now is, monitoring is enabled on the EJB-container (Level set to HIGH), but nothing is sampled in any bean-method in any EJB in any deployed application.
Is there something special to do in the bean and/or the glassfish ?
Thanks in advance for help,
Chris
EDIT:
Ok, I noticed something more about that behaviour:
In the server log you get a log message for each deployed EJB like that:
INFO: EJB5181:Portable JNDI names for EJB DataFetcher // ...
If I set the ejb-container monitoring level to HIGH (which is what I want to do), I get the following warning for each deployed EJB, regardless which app I deploy:
WARNING: MNTG0201:Flashlight listener registration failed for listener class : com.sun.ejb.monitoring.stats.StatelessSessionBeanStatsProvider , will retry later
I googled the warning but none of the resulst really help me enabling EJB monitoring...
This seems to be a Bug in Glassfish.
EJB Monitoring is currently not working in 3.1.2.
JIRA issue is already raised: http://java.net/jira/browse/GLASSFISH-19677
There is nothing "special" to do.
http://docs.oracle.com/cd/E18930_01/html/821-2431/abeea.html
For me it seems as if you probably enabled the monitoring option on the wrong configuration. Please double check.
To get rid of this message you can disable the monitoring on ejb container option below in the image
From Monitor Data--->Configure monitoring--->make ejb container log off

Glassfish 3 EJB3 rmi example

Can someone please provide me or link for sample project with standard java rmi capabilities. I wish to deploy it in Glassfish 3 and I have just about tried everything to get a simple project running, but Glassfish does not register my objects. I see that the there is a standard JMX RMI registered on statrup on port 8686 for glassfish. I haven't found any tutorials or examples on this that work. If possible in JAR archive, simple hello world which I can call externally.
Thanks in advance
Ok basically it came down to the following:
Created simple main class within the EJB project.
Stating the class should be fired upon startup of the war from the manifest does not work.
Added the annotation #Startup right above my class declaration.
Added the annotation #PostConstruct above my main method, this invoked my method at start up and registered the RMI service.

Resources