TomEE lookup errors - web-services

I've a WebApp that uses tomcat and openejb in separate installations. I'm trying to move this to a TomEE (web profile / plus) environment and I'm running into lookup errors. JNDIContext is throwing a java.lang.NullPointerException.
I tried w/ TomEE web profile first. My webapp also uses web services and google search lead me to try TomEE plus because the web profile doesn't support web services. No luck w/ this version either.
One difference between the two version is that in the TomEE web profile, I see all the Remote objects when I access the openejb webapp. However I don't see them w/ TomEE plus version.
http://localhost:8080/openejb/viewjndi.jsp
Any suggestions of how I could resolve this? I'm guessing it is configuration issue and I don't know which one.
Here is the complete stack trace:
java.lang.NullPointerException
org.apache.openejb.client.JNDIContext.createBusinessObject(JNDIContext.java:203)
org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:247)
javax.naming.InitialContext.lookup(InitialContext.java:392)
org.bluebox.customer.client.CustomerConnection.getCustomerAccountRemote(CustomerConnection.java:67)
org.bluebox.customer.client.CustomerLogin.prepare(CustomerLogin.java:65)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:167)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)

TomEE Plus is definitely the right distro to use if migrating from an OpenEJB/Tomcat install. They match identically in features with the difference that the stack now supports full EJB 3.1, JAP 2.0 and JAX-RS. The Web Profile version of TomEE is quite a bit leaner and lacks WebServices, JMS and any non-WebProfile requirement. Here's a brief comparison of APIs supported.
That looks like a bug that was fixed with TomEE 1.0.0-beta-2 released in January. If you can give it a try, it'd be wonderful. We will absolutely want to make sure any issues you might face are cleared up before the 1.0.0 GA.

Related

Detecting PCF version(s)

I have access to our corporate PCF, though both the Apps Manager webpage and the "cf" CLI (and thus the API).
How can I detect what version of PCF they're running? There's nothing in the website that lists it, and the best I can find is using cf api which returns:
api version: 2.98.0
How can I map that to the PCF version, or is there another way to detect it?
Usually via Ops Manager however another quick way is to click on the 'Docs' in Apps Manager it should take you to the documentation of relevant PCF version. For ex: https://docs.pivotal.io/pivotalcf/2-6/pas/intro.html means PCF 2.6
Please be advised that documentation link requires to be updated during upgrades so if someone doesn't do - it will be pointing out to older version..
I don't believe Apps Manager or the API (i.e. Cloud Controller) will report that information. Both are just single parts of the entire system, so I think you could really only expect them to publish their own version information.
If you want to see versions of what is installed, you need to look at Ops Manager. That will show you the tiles that are installed and each version.
If you don't have access to Ops Manager, you'd need to ask your platform operators.
Hope that helps!

Swagger with Resteasty 3 + Jetty 9.2 + JAX-RS 3

I am trying to configure an existing application to use Swagger. This application uses Resteasy 3 and Jetty 9.2 along with JAX-RS 3.
My changes are based on the explanations given on the Swagger wiki.
I have first added swagger 1.5.0 in my build.gradle before adding annotations #Api and #ApiOperation on a resource named SchedulerStateRest.
The next step was to edit my web.xml in order to hook up Swagger-Core in my Application and Initialize Swagger using Swagger's Servlet.
My issue is that when I launch my application, no resource is found when I browse /swagger.json or /swagger.yaml from http://localhost:8080. However, I get no error while starting Jetty and existing services are running and available.
I have enabled Jetty logs but I found no information relevant to me (the class in charge to launch Jetty embedded is JettyStarter).
By looking for similar problems, I found people who say that swagger content should be available at /v1/api-docs, so I tried different URLs but I always get a 404 error.
Recently, I found a gist from ben-manes for configuring swagger with Resteasy 3 + Guice 4. I tried to mimic its configuration and deduce the configuration for web.xml based on Guice-servlet explanations but I end up with the same problem as for the configuration explained above (no resource available are the expected address).
Since there is no error while starting embedded Jetty, I wonder if the issue is not related to a wrong address. Do you know how to list "resources" that are available on a Jetty instance?
I noticed that explanations on Swagger wiki are for Resteasy 2.X. Does it mean that Swagger is not compatible with Resteasy 3.x?
Ideas, suggestions, etc. to debug, solve the issue are welcome ;)
I actually figured it out yesterday. I'm going to post a sample application on git hub sometime this week since I can't find an example anywhere

esb solution, servicemix or wso2? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
We are trying to decide which ESB choose between ServiceMix or WSO2?
We are looking an esb to:
Support different protocols (REST, SOAP, JMS, HTTPS,..)
Generate statistics or some console to see "what's happening, how many request are arriving, how many of them are failing,..."
Develop proxy services
Support for JMS
An important point is the price, ServiceMix an WSO2 is free, but ServiceMix also has free support,... I don't know if WSO2 so.
We have been using WSO2 for projects and to be honest as Java developer I do not like WSO2.
- WSO2 documentation is very bad. Basically all their examples are copy paste from Apache synapse.
- The consulting architect sold us WSO2 by showing how easy it was to develop proxy services on the GUI, but if you try to go beyond the basic and look for samples that would tell you what a particular option does in GUI, then you will be sorry. If a company promotes the video that it also offers a GUI based solution because many Java developers do not like to work with XMLs then it should have samples and document showing how to do stuff using their GUI and not just copy pasting Xml solutions from Apache Synapse.
When I was using wso2 ESB 4.XX version(A newer version is out there), I discovered several bugs in the GUI. P.S. I hear that those bugs have been fixed in the latest version of WSO2 ESB.
I have since moved to using serviceMix and I could not be happier. Service mix is very intuitive and documentation is excellent. As far as the argument goes that WSO2 has eclipse plugin then so does ServiceMix(check out Fuse ESB IDE).
My manager was sold when he read on the WSO2 landing page that EBAY uses WSO2 so it must be very good. Now that was wrong approach. Ebay may have had a different problem than ours so as someone mentioned above put your problem ahead of the product that you intent to use.
Learning curve is very steep with WSO2 and good luck with finding solution on google.
In Servicemix you can use DSL / XML or pure java to do your thing.
Update: With the latest release of WSO2 ESB, WSO2 has created samples/examples which shows how to do things in GUI and via plain old XML.
I have been leaning strongly towards WSO2 and barring anything completely out of the blue that’s my current direction within Q1.
On-site/as-is:
Oracle Service Bus 11g
Oracle SOA Suite 10g and 11g (used as "service bus")
"Roadmaped" Addition Candidates:
WSO2 ESB (Apache Synapse+)
Apache ServiceMix
Strong challenger:
Fuse ESB (Apache ServiceMix+)
UltraESB
Out of contention:
Mule ESB
Tibco, WebMethods, anything else that’s big money
Defining ESB as stateless transformation, routing and mediation I’ve got the following systems either in play or in research (we’re pushing hard on rolling out OAGiS and your question is topical to me). In no order my experience and impressions of items from the above lists:
1) Oracle SOA Suite 10g and 11g (horribly used as a “poor-man’s” ESB)
My heartache here has been the Oracle SOA Suite. It's a product I really like, but my organization cannot -- will not -- purchase RAC. And SOA Suite does not "fly" without RAC. Also SOA Suite is architected to "do everything" including the non-stateful adapters I'd prefer to use Camel for (e.g., JMS-, File-, DB-adapters, etc.). So it's a blended stateful and non-stateful, instant and long-running, persistent and ephemeral, orchestration and choreography mess. It’s good for making piles of wrong long-lasting decisions faster.
2) OpenESB
My first “SOA” love… cut my teeth in retail on it. Then Oracle bought Sun. And that’s sort of the end of that.
3) Oracle Service Bus 11g (BEA AquaLogic Service Bus)
I'm actively looking to replace Oracle products; and though I like the OSB product -- very much in fact -- it's long in the tooth security-standards wise and it feels almost out of support now as Oracle figures out how to get it out of BEA (Eclipse) and move it into Oracle's infrastructure (read: JDeveloper). I've grown to appreciate JDeveloper btw, but that's another topic. The WS-* standards are aged. There’s no built-in pub/sub mechanism; but JMS is well supported. However if I wanted to managed JMS-as-MOM I could just do that and use Camel most successfully. All that said, the OSB is an extremely good product and we've got room for more than one ESB. We run multiple busses based on canonicals: OAGiS, NIEM, etc. I've got one cluster running with nearly forever uptime.
4) Fuse ESB
Looked into this and one of my largest integration partners uses it. Using a set of basic enterprise integration pattern to test, and for some reason this was not trivial to get going with Fuse. I’ve got a couple of developers who do not come from the Maven mentality and the IDE took the wheels off the wagons. This is the same for all of the ServiceMix console-driven ESB of course, so the differentiator comes from the IDE and the console. I also consider “pretty is a feature” and our developers and support staff use the consoles to help troubleshoot customer problems. Thus Fuse didn’t wow me, but it didn’t tick me off either.
5) Mule ESB
I remember Mule from the “good-old-days” (really before I started using Apache Camel) where I used it to move info from anyplace to anyplace. Very point-to-point, very old-school, but the gold-standard of effectiveness. But that was Mule without the “ESB”. The Mule EBS is lightweight (they say so) and I was told emphatically that Major League Baseball uses it so I must be sort of nuts to not purchase it immediately. The ability to use LDAP is an enterprise feature. I can almost even accept SAML2 or OpenID or OAuth as enterprise features, but LDAP? Trivial I know, but it telegraphed what I consider a lack of “developer heart”. I consider the community edition to be hobbled.
6) Apache ServiceMix
If I use servicemix I'd like to find one that added value to the consoles and reporting. But if I decide that’s not so important I might as well use ServiceMix itself if my intent is to create an extremely streamlined “programmer” experience. We’re pretty good at Ant, Maven, and Gradle. You might ask, if we’re going to jump the hoops why not jump the Fuse ESB hoops? No good answer for that except I expect Fuse to have already removed the hoops.
7) WSO2 ESB
We’ve used the G-Reg product for a little bit and my experience with it has been good. Their security standards are recent and very good; the interfaces are good and decent enough to give to an associate developer to help troubleshoot; as #ivo mentioned above the WSO2 staff use stackoverflow extensively. We have used their Stratos-live product in the “cloud” but could never quite get ourselves “there” (entirely our side of the equation security-wise and all). I have a soft rule here that any open-source software must be locally buildable by a developer of reasonable skill. That has never gone smoothly using WSO2 software. So that’s a risk. But if you’re happy running on the binaries as provided I think you could be successful with WSO2.
As #user9591 mentioned WSO2 is used by ebay and that’s either a thing for you or not. I think it has had a strong effect on “selling” it here.
8) Tibco, WebMethods, and any other non-opensource systems
Added this for completeness though I haven’t used Tibco in a few years. Not open-source, so there it is.
WSO2 ESB has supports all the things you need and is pretty easy user-friendly. There are a lot of useful blogs, online documentation and some webinars.
The wso2 esb free support is mainly here in stackoverflow, they have also payed support though for the price you'll have to contact them (I think prices vary depending on the type of support you need).
I haven't evaluated servicemix, but WSO2 ESB seems nice.
Depends a bit on what you need to do.
ServiceMix (Fuse ESB) is essentially an OSGi container/console around Apache Camel,Apache ActiveMQ and Apache CXF (+ a few other Apache integration projects like ODE). The bundled ActiveMQ gives a JMS platform out of the box, which is not the case with, for instance Mule ESB (although it is trivial to bundle Mule with ActiveMQ).
ServiceMix major components, Camel and ActiveMQ, has really strong community support through mail-lists and bug trackers.
Mule is indeed very powerful with it's Studio and data mapper, although the Community Edition that is free feels rather limited compared to the EE version, specially when it comes to supervisioning/monitoring which you request.
I don't know about WSO2, but there is very limited, if any, out-of-the support to actually follow the messages flowing through the ESB in both service mix and Mule ESB CE. It is not very hard to implement some statistics via logging, but it's a manual thing to do.
I would suggest this link as a beginner's reference page.
http://www.javacodegeeks.com/2012/03/integration-framework-comparison-spring.html
I have not used wso2 but can definitely speak about fuse. I have been using different integration capabilities of fuse. Foremost thing is, it is osgi based, it is definitely a thing to consider if you are architecting a new solution. I find fuse community very active. Best thing about fuse is it is provides integration capabilities for aws, hdfs and hbase besides jms, rest, http(s) proxy end points, load balancers etc
Fuse does provide an ide.
And about logging, you can definitely log every message that reaches the esb.
Finally, i would say the good ol words, dont consider the capabilities of the esb first, instead keep your problem in the front and see which of them solves it better for you.
WSO2 also offers free support through its community. WSO2 ESB has the support for different transport and also able to generate statistics (mediation, service etc.) . Just have a look at the product page. You can integrate ESB with WSO2 BAM 2.0 which gives you analytics and monitoring. Further it provides a complete platform which can be connected easily.
WSO2 ESB has extensive support for statistics. As I see, it has support for all the things user asked for, and more. There, while you can get detailed analytic and stats by integrating BAM, WSO2 ESB itself provide stats to suite the user. See the sections in WSO2 ESB documentation titled Monitoring WSO2 Enterprise Service Bus, and Statistics.
Yes, WSO2 ESB supports REST, SOAP, JMS, HTTPS among other supported Transports. Supported protocols and transports are available in the WSO2 ESB product home page.
WSO2 provides UI support to develop proxy services which makes developing proxy services little more easier.
I'm not familiar with ServiceMix, but I think you can get some applicable facts from other answers.
I was evaluating various ESB part of my current job and I have done bit of research on WSO2 and Apache synapse till date
WSO2 is created based on Apache synapse and it has excellent admin console. I would say It could be their selling point. when it comes support, the only viable solution is you have to pay for your support. even though there is community support through stackoverflow exist, but there is no response for my queries.
regarding Synapse, I would say it is not active. there is only 6 version released over the period of 6 years and last release was done around 18months ago. I am still evaluating JBoss Fuse, ServiceMix and Mule

Glassfish, railo and coldbox - messed up links?

I am new to ColdFusion and ColdBox (and programming). I tried to setup ColdBox but some of the links in the sample applications are broken.
My configuration is a GlassFish v3 installation with the current Railo OSS. I access my site through Apache 2.2.14.
So instead of http://127.0.0.1:8080/railo/ I access my environment trough http://railo/.
In Railo I have a webroot mapping / to C:/webapps/myproject/.
I have copied the current ColdBox 3M4 to C:/webapps/myproject/coldbox. I can access the dashboard through http://railo/coldbox/dashboard/index.cfm and have access to all options.
My problems start the moment I try to open the sample gallery:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented
it from fulfilling this request.
exception
java.io.FileNotFoundException: C:\webapps\viss-dev\coldbox\samples
(Zugriff verweigert)
note The full stack traces of the exception and its root causes are
available in the GlassFish v3 logs.
GlassFish v3
OK, no problem, just enter the link directly: http://railo/coldbox/samples/index.cfm.
The site looks plain, who cares - BUT all local links look like this: http://127.0.0.1:8080/coldbox/samples/applications/helloworld/index.cfm (railo is replaced with 127.0.0.1:8080).
Looks like trouble. To make my confusion perfect: when I try to access the login app: http://railo/coldbox/samples/applications/sampleloginapp/index.cfm and hit the submit button, I am redirected to this address: http://railo/railo/coldbox/samples/applications/sampleloginapp/index.cfm.
I believe that this is not really ColdBox-related, but it manifests itself when I try to use ColdBox, so here I am.
P.S.: amazon.de takes too long to ship the ColdBox book :(
Here's a suggestion, The good people at Vivotech have developed a couple of different installers for both Windows/IIS7 and various flavours of Linux for both Railo and Open BlueDragon. The setup installs Tomcat, Railo/Open Blue Dragon and the necessary connectors to the web server. Here's the link: http://www.viviotech.net/company/installers.cfm
I think you'll find using the installers to be a lot easier than working through it yourself. If you want to go that route, Adobe and various bloggers have instructions on how to do it. Matt Woodward has a very good blog posting on it: see MattWoodward.com, He also has a presentation on this, you can see it here.
hth,
larry
Since you are new to ColdFusion (and programming in general), I would recommend developing against Adobe ColdFusion. The Developer Edition of ColdFusion is free and available from Adobe.com. You won't need to mess around or configure GlassFish since Adobe ColdFusion comes with a baked-in pre-configured Tomcat, providing both servlet engine and web server.
Just install the 'Stand-alone' version of ColdFusion Developer Edition, copy the ColdBox files into the webroot and in less than 15 minutes you be up and running.
You should also check out ColdFusion Builder which is currently available in beta from http://labs.adobe.com. It has full language support and integrated help content for learning the ins-outs of the language.
As far as the ColdBox book goes, it's available as an eBook if you really can't wait. ;-)
DISCLAIMER: I spend about 50% of my waking life devoted to making ColdFusion better as the CF Product Manager at Adobe. :-)
i have given up on glassfish and i am now struggling with tomcat :D

Consuming a web service with the Netbeans Platform

I have an application that is written with the NetBeans Platform 5.5. I'm having trouble consuming a web service.
If I create a Java SE application in NetBeans, I can add a web service reference without problem.
Since my application is using the NetBeans Platform, many of the menu choices change. So, I cannot figure out how to add a reference to the web service. I've googled this topic a number of ways but haven't found any pages that deal with consuming a service through the platform. They all talk about consuming a service with a Java SE application.
Changing the application from the Platform architecture is not an option.
Here is a good tutorial for setting up a Feed Reader on NetBeans Platform. It covers some of the configuration issues for using web services
Blog with an entry about making a web services client
I'd be happy to try and give you a more specific answer if you can give information about the service you want to access.
Found this:
Create web service and client using this tutorial
Create library wrapper module for web service client (you don't need to include JAX-WS libs, only your client jar)
In your wrapper module add following dependencies (important):
JAX-WS 2.1 API
JAX-WS 2.1 and JAXB 2.1 Library (for this you have to check Show Non-API Modules in "Add Module Dependency" window)
If you try to build module after these steps it will fail telling you that your module is not friend of "path-to-netbeans"/java2/modules/org-netbeans-modules-websvc-jaxws21.jar.
Right click on JAX-WS 2.1 and JAXB 2.1 Library and choose Edit. Select Implementation Version.
from here.