Sunday Aug 31, 2008
Tuesday Aug 26, 2008

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:- Prepare the directories.
- Create a database.
- Run the installation script.

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
Saturday Jul 12, 2008

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
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
Monday Jun 16, 2008

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.
Thursday Jun 05, 2008
Tuesday May 27, 2008

Last weekend my wife and I went to Olomouc, a small historical city and ancient Archbishop's seat in central Moravia. It's a UNESCO world heritage site, mainly due to its plague column on the Upper Square, which is the largest Baroque column in Europe. We prefer the 2001 turtle fountain (both visible in photo). Olomouc is very pretty and very quiet on weekends and only a 3 hr train ride from Prague (2.5 if you take the Pendolino, but I don't think it's worth paying almost double). When we went a couple years ago, the only foreign tourists were on tours organized by the Catholic church to see various regional sites of pilgrimage. Now however there were a number of what appeared to be independent family groups. This includes what to me were a surprising number of Americans, in that any Americans at all who weren't doing a year abroad at the University or taking a side trip backpacking between Vienna and Krakow would be a surprising number. Well, good for the city, I say, as the region is rather depressed and needs all the money it can get. One indication of this is that the city's tourist information office is open on Sundays--unheard of! As this was our third visit to Olomouc, we took a day trip to Kromeriz, where the archbishop of Olomouc had his chateau (38 mins by train, one transfer).
Amadeus was filmed at the chateau, and it is a really impressive building, with a surprisingly good gallery of historical paintings. Usually small city chateau collections are full of B-team C. European stuff that the noble family who owned them couldn't be bothered to take when they fled the country ahead of Communist state asset seizure in 1948 (or 1946 if they'd been bad boys in the war).
- Go to David Salter's blog post and follow his instructions for checking out and building 6.1 Facelets and Seam support plugins.
- Run the Introduction to Facelets tutorial. Let me know how it goes!
Sunday May 18, 2008
Thursday May 15, 2008
After the long, dank, grey Central European winter, Spring has arrived and with a bang. In the last couple weeks of April, everything flowered and all the leaves came out. True, I spent most of that time trying to get our new tutorials page nice and pretty, at least for web services. And then I was off to the Netherlands and Spain for 11 days, while everyone else was at JavaOne. (The Netherlands was great, and the weather really picked up after our first two days. On the other hand, while Barcelona is a great town, they had record breaking gales for two of the three days we were there.) But I'm back now, and it's May, which is my favorite time of the year in this country and this city. I have more pictures of Prague in general and Vinohrady, my neighborhood on my Photobucket account. You can also see some of my wife's knitting there...
Sunday Apr 13, 2008
- Download the Java version of the Interoperability Testing Tool from the WS-I.org Deliverables page.
- Unzip the tool into the location of your choice.
- Create a WSI_HOME environment variable set to the location of the unzipped Interoperability Testing Tool.
- Open the IDE and navigate to Tools > soapUI > Preferences. Open the WS-I Settings tab and, in the Tool Location field, enter the location of the downloaded and unzipped wsi-test-tools folder. Select other options according to your preferences and click OK.


To validate SOAP messages, first monitor a SOAP request and response, as follows:
- Find the binding node in the Web Service Tests node and expand it to show the requests.
- Right-click a request and open the Request Editor, described in soapUI documentation.
- In the Request Editor, send a request and wait for the response.
- Right-click in the response window and select Check WS-I Compliance.


You can see the test configuration used to generate the test report in the Config tab. SOAP message test reports also have a Log tab, which is an XML log of the request and response SOAP exchange.
Saturday Mar 15, 2008
Tuesday Feb 26, 2008
Step 1: Download and install Axis 2. Well, that's easy enough, it's just a ZIP file. I see there is also a WAR file that I can download, but Step 2 is building the WAR file, so let's follow the engineer's directions and just download the zip and unzip it somewhere, say C:/ root.
Step 2: Run the build script in the Axis2/webapp directory to create axis2.war. Splendid, although there is no build script, just a build.xml. Wait, if there is a build.xml, then I can build it with ANT. Do I have ANT on my classpath? ... Nope. Have I installed ANT? ... Evidently not. So I install Jakarta ANT, put it on my PATH, and Bob's your uncle, or my uncle, or something. I wish I could write "...and Bob's your uncle" in an official tutorial. Anyway, ANT runs and I get my axis2.war file.
Step 3: Copy axis2.war to the J2EE server webapps directory. I copy it both to TOMCAT_HOME/webapps and GLASSFISH_HOME/domains/domain1/autodeploy.
Step 4: Start IDE.
Step 5: Install the Axis2 nbm plugin file. Milan sent me one as an email attachment, but the 6.1 distro I installed already had it as an available plugin, so that was easy.
Step 6: Go to Tools -> Options -> Axis2 -> Runtime and type in the Axis home directory. Easy enough.
Step 7: Still in the Axis2 Options, switch to the Deployment tab and enter the path either to the Tomcat Axis2.war or the GlassFish Axis2.war. I choose Tomcat since Axis is supposed to work a little better on that server. Milan's advise was to enter the path to the TOMCAT_HOME/webapps/axis2 directory, to which Tomcat unpacks the WAR, rather than the WAR file itself. However, I couldn't find an axis2 directory so just typed in the path to the WAR. Later I found out the significance of this absence...
Step 8: Enter the Tomcat Manager username and password. Fine, except that first I have to find out what they are. Milan said that they are in TOMCAT_HOME/conf/tomcat-users.xml, and he sent me an example of the file. It's a good thing he did, because my tomcat-users.xml is empty. I copy Milan's file into mine, and now I have Manager username "tomcat," password "tomcat."
Step 9: Create a new Java Library project. OK, I name it AxisBoldAsLove. Note to self: Do not make Jimi Hendrix references in official Sun tutorials. I create a myaxis package in the project.
Step 10: Create an empty Axis web service from Java in the project. I choose New -> Other -> Web Services -> Axis2 Service from Java and select "Empty Web Service" from the wizard. I put it in the myaxis package. Well, hurrah! I get an Axis Web Services tab in my project, with the NewAxisFromJava WS (hmmm, I should have selected a name), and the NewAxisFromJava.java class in my source package. Terrible name.
Step 11: Implement the service class. Well heck, I can't open the Axis web service, so I guess I should change the .java class. That however already has some "Hello, World!" output specified by default. Maybe I don't need to implement anything?
Step 12: Deploy the service. I right-click the service and select Deploy... OK, I get a BUILD SUCCESSFUL message, but nothing on the Tomcat log. That doesn't seem right.
Step 13: Check that service is at http://localhost:8080/axis2/services. Er, I have a 404 error.
OK, Milan's gone but Lukas Jungmann listens to my woes. We go through my project. And here's the nub: I should have copied axis2.war to the Catalina base, which is in Documents and Settings/Jeff/.netbeans, not to TOMCAT_HOME. Well, bloody hell, I copy it to CATALINA_BASE.
Still a 404 error! Lukas scries my log and sees that when I redeploy the WAR file, I'm still redeploying the one in TOMCAT_HOME. So we look at Tools -> Options -> Axis2, and sure enough, it's still pointing to the TOMCAT_HOME WAR file. So I change that, redeploy the service and generate a WSDL file.
Success at last! Everything is where it's supposed to be, and a JAX-WS client can be created based on the WSDL file.
Well, dear reader, by the time you see my tutorial this process should be simplified somewhat. Step 6 is already obsolete, because Milan has received permission to include the Axis libraries directly in our plugin. I'll try to play around with the service code a bit to see if I can make it do anything interesting, but really there's not much to it. All the operations appear to take place in a standard Java class, and that class is then exposed as an Axis web service. To change the operations, you change the java class and these changes are automatically reflected in the Axis web service. Milan's added subnode display to the web service in the project, so you can watch the operations get added to the web service in real time! After changing the service, you of course have to redeploy it, and then whoever is running the client has to refresh it.
This blog copyright 2008 by Jeffrey Rubinoff
