Wednesday Mar 10, 2010

WSDL Customization Issues and Workarounds in Java EE 6 Applications in NetBeans

I've found a couple issues when using NetBeans to generate a WSDL file for an EE 6 web service, and then customizing that WSDL file. Some other users have reported them as well, so I thought I'd share them with the community.

  • When I set a new wsdlLocation attribute in the web service class, this is ignored and the default, autogenerated WSDL is used instead. It appears that GlassFish v3 doesn't recognize the wsdlLocation attribute. A bug against GlassFish has been reported (11437), there's a fix in the nightly GF builds, and the fix will be there in 3.0.1. In the meantime, it's probably worth downloading and installing the nightly GF build and registering this server in the IDE.
  • When you use NetBeans to generate the WSDL for an EE 6 JAX-WS service, generation fails because wsgen "Could not create declaration for annotation type javax.ejb.Stateless" or javax.ejb.EJB. Workaround is simply to comment out those annotations, generate WSDL, then uncomment them.

The NetBeans guys told me that the second problem is related to wsgen in JAX-WS, not an NB issue. I posted this as issue #837 in jax-ws, but the JAX-WS guys replied that this was a problem with apt, not wsgen. Their suggested workaround is to "Pass the Java EE API jar that contains @Stateless in the wsgen classpath." I don't know how this is done and am waiting to hear from the NetBeans guys, again, to find out if this is something we can do in the IDE. Also, I hope someone can explain to me what "apt" is.

UPDATE: All these issues are resolved using NB 6.9 RC, GF 3.0.1 and JDK 6 u 20.

Friday Dec 04, 2009

RESTful Web Services and EJB 3.1

First, no, I'm not dead, and I'm still at Sun. But there hasn't been that much activity with NetBeans IDE support for WS, and I've been working a lot on PHP and Cloud. I'm here though to plug Milan Kuchtiak's new DZone article, which shows how JAX-RS 1.1 can be used with EJB 3.1, taking advantage of the new EE6 Singleton EJB and the JAX-RS @ApplicationPath annotation. Check it out at DZone.

Wednesday Apr 01, 2009

Portability and Performance in JAX-WS Clients built in NB 6.7

In NetBeans IDE 6.7, when you create a JAX-WS client, the IDE automatically creates a local copy of the WSDL and any other WSDL or schema that the WSDL references. This improves performance, because the client does not have to look up these resources on the internet. It also improves portability, since the original WSDL file and its references do not have to be available for the client to run.[Read More]

Friday Feb 06, 2009

Question of the day

Why are versioning control systems given names like Subversion, Mercurial, and Git? Do I want to trust my project to software that undermines order, that is given to unpredictable fits of temper, or that is just annoyingly stupid?

Wednesday Jan 28, 2009

Still alive

My apologies for not posting in a while. My thoughts have been elsewhere, and for a large part of the time, so have I. My wife and I were in the US for 3 weeks, one week in the DC area and 2 weeks in NYC. DC pictures are on my Photobucket here and NYC pictures are here. The highlights of DC were our visits to the Natural History Museum and the Museum of American History at the Smithsonian. We are used to British museums, which are generally excellent, but these surpassed any history or natural history museums we have ever been to. I also found DC to be a more pleasant city than I remembered, but much has changed of course in the intervening 16 years. NYC was as staggering as it was 2 years ago on our first visit. Manhattan is one of the few cities, along with Rome, that I can wander around in for hours and be constantly gobsmacked just by the appearance of the place. Highlights include The Met, which may be the best museum we've ever been to (sorry, BM, we still love you!), and eating our way through ethnic neighborhoods, particularly Flushing in Queens. If you ever get the chance, I strongly recommend the Roosevelt Food Court at Roosevelt and Main.

NEW temporary problem with RESTful client stubs created in jMaki or Spring framework

Well, the last problem with RESTful client stubs was fixed in jMaki plugin Now however a new problem has been exposed. See Issue 150367. The change to Jersey 1.0 caused a regression in the client stub generator. This was fixed but did not make it into 6.5 release. There's a set of updates, which internally we call Patch 2, due to go out no later than mid-February. The fix for this problem will be in that set of updates. In the meantime, if you want to try out the Creating and Consuming RESTful Web Service jMaki Components tutorial, use the following sample projects instead of the projects you make in the tutorial: EDIT: As soon as I write this post, Patch 2 is released! So the problem is over.

Tuesday Dec 02, 2008

Temporary problem with RESTful client stubs created in JMaki framework

If you try to test a RESTful client stub created in a NetBeans Web Application with the jMaki framework, as described in Creating and Consuming RESTful Web Service jMaki Components, right now it will not work. This is because the code generator uses dojo 0.4.3, which was removed from the latest jMaki plugin, version 1.8.1. I have been informed that dojo 0.4.3 will be back in jMaki by the end of this week. For a longer term solution, Ayub Khan is working on changing the RESTful client widget to use dojo 1.0.x. See NetBeans issue 154158 for more details.

Wednesday Oct 01, 2008

@ProduceMime, @ConsumeMime > @Produces, @Consumes

In the 0.9 version of Jersey supported in development builds of NetBeans IDE, the old annotations @ProduceMime and @ConsumeMime have been replaced with @Produces and @Consumes, respectively. These new annotations are not backward compatible! If you want to use any RESTful services created according to an earlier Jersey version with Jersey 0.9, you have to change the annotations. The new annotations are also used in the upcoming official JAX-RS 1.0, of course.

Saturday Aug 30, 2008

Facelets support on the trunk for NetBeans 6.5

Facelets support is on the trunk for NetBeans 6.5. If you install NetBeans 6.5 Beta, you can install Facelets support from the Update Center. "On the trunk" means there should be no more implementation dependency problems, which caused so many problems for the 6.1 Facelets plugin. If you would like to try out Facelets support in NetBeans 6.5, please see the 6.5 rewrite of the Quickstart tutorial.

Monday Aug 25, 2008

Creating a PHP Project from a Subversion repository

I recently created a PHP project in NetBeans IDE 6.5 Beta based on the repository version of Mediawiki. To begin with, I looked up the Mediawiki wiki page on their Subversion repository. In my IDE, I installed both the Subversion plugin and the Subversion 1.5 for Windows client, available from the Plugins manager (Tools > Plugins). Then I went to Versioning > Subversion > Checkout and entered the URL.

Because I am not a Mediawiki developer, I left the username and password fields blank. If I had developer privileges, I would have entered my authorization credentials so I could later commit changes back to the Mediawiki repository. In the next panel of the checkout wizard, the IDE automatically filled out the Repository Folder field with the path to the phase3 folder. I accepted this default. Then in the local folder field, I specified the path to the web folder for my Xampp installation. This meant that the Apache server in my Xampp could immediately expose my checked out Mediawiki repository. I left all other fields and check boxes blank, which is the default setting.

When I clicked Finish, the IDE checked out the Mediawiki phase3 SVN repository correctly to my Xampp web folder, with the path G:/xampp/htdocs/phase3.

Next I completed the Mediawiki installation procedure as described in the Mediawiki installation guide:
  1. Prepare the directories.
  2. Create a database.
  3. Run the installation script.
Now I wanted to create a NetBeans project with this repository. I opened the New Project wizard and selected PHP Application with Existing Sources.

In the Name and Location panel, I browsed to the G:/xampp/htdocs/phase3 folder. I then selected "Put NetBeans metadata into a separate directory" This is so that no NetBeans metadata would be committed back to the Subversion repository. (I had no check in privileges in any case but wanted to test the feature.) I created a "mediawiki" folder in my NetBeansProjects directory for this purpose. I left all other fields at their default settings.

In the Run Configuration panel, I chose to run the project as a local web site, on my Xampp Apache server. I could instead have chosen to run the project on a remote FTP server or as a command-line script, as described in the Setting Up a PHP Project tutorial. Because I had already checked out the Mediawiki repository to my web folder, I did not need to copy source files to that location. So I left all fields at their default settings.

That was it! When I clicked Finish, the IDE created a PHP project out of the checked out Mediawiki repository. It took about 30 seconds to index all the files. From then on, I could use the IDE's PHP editing features to work on the project and its versioning features to update and commit my changes.

Thursday Jul 31, 2008

Using Zend Framework with NB 6.5 PHP Editor

I have gone through the Official Zend Framework Quick Start on a development build of NetBeans IDE 6.5 Beta. In this blog post I describe my experience in setting up the environment for Zend on NetBeans and the lessons I learned.[Read More]

Friday Jul 11, 2008

Facelets plugins do not install with Patch 2

Two users have reported that neither of the Facelets support nbm files (for FCS and multilingual versions) will install to NetBeans 6.1. I have reproduced this problem. The plugins fail to install, returning an error that a necessary JSP parser module is missing.

The problem appears to be that Patch 2 replaced the JSP parser with a new version, and the nbm files are set up to use the old version. Until a new version of the nbm is created, I'm afraid you need to have an installation of NetBeans IDE 6.1 without updates in order to use Facelets support.

Thursday Jun 26, 2008

WSDL 2.0 vs WADL

I've just been reading this rather interesting post on WSDL and WADL via DZone. When I got to the all-too-brief discussion of WADL at the end, I realized something: after 6 years documenting web service related stuff, I still don't really know what's going on in a WSDL document. But when I look at WADL, it seems clear as day. Is this just my naive social-science-major tech writer POV, or do WS developers feel the same way?

Wednesday Jun 25, 2008

RESTful Web Services from Database function in NB 6.5 M1

In NetBeans 6.5, in a single wizard you can create entity classes from a database and create RESTful web services from those entity classes. You used to run two wizards to do this.[Read More]

Monday Jun 16, 2008

Back from Devon

Just back from a lovely short holiday in Devon, visiting my in-laws. My mother-in-law took us up to Dartmoor for a walk up and around Wistman's Wood. This is a tiny wood about the size of a large suburban back lawn in the States, but it's inhabited by twisted, stunted trees and a remarkable variety of mosses and ferns. It may be a remnant of what all Dartmoor was like before people and their sheep changed the landscape, though on the other hand it is much rockier than most of the moor. People also say it has survived because it was sacred to the Druids or some such and the locals didn't want to take their sheep there. On the other hand, it may just be too rocky.

There was also much drinking of real ale in nice pubs and wandering around Exeter. They had a craft fair on the Cathedral green, and Eve was happy to find represented a local farm that would sell her raw wool she could spin. She thought you couldn't buy raw British wool as it all had to be sold to the government's Wool Board, but evidently this only applies to white wool. The farm itself, West Yeo Farm, sounds pretty cool--besides various wool from rare breed sheep, they sell organic beef and pork from rare breed, free range animals. I'd provide a link but their web page is down, silly hippies.

I'm a technical writer for NetBeans, covering web service support.


« April 2014