Saturday, November 22, 2008

Delphi 2009, Delphi Prism, InterBase 2009 and Delphi for PHP 2.0 seminars this week! Busy busy.

Tuesday, September 9, 2008

Grails 1.0.3 and BEA/Oracle Weblogic 10

by Richard Vowles

So I am working on a project that is using Oracle/BEA Weblogic 10 and we have been having really big problems trying to get a Grails 1.0.3 application deployed successfully on it.

It uses Apache CXF as its web services layer as well, which makes it even more tedious. So the lessons we learnt?

Weblogic hates non-serialable objects in its web Session object

Grails domain objects when they have constraint violations store themselves into the web Session and this creates problems for Weblogic as the objects are (a) not serializable by default, (b) any closures in them are not transient by default (e.g beforeInsert closures) and (c) links to Services often cause problems. We didn't have (c) (it is logged in the GRAILS bug parade).

class Order implements java.io.Serializable {
def transient beforeInsert = {
// do thing
}
}

All objects referenced by your class also need to be tagged thus as well.

Weblogic has to be told to tow the line for classes

<weblogic-web-app>
  <context-root>/wls_app</context-root>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>UTF-8</java-charset-name>
</input-charset>
</charset-params>
</weblogic-web-app>

We didn't end up having to deploy it as a EAR file.

CXF just wouldn't work unless....

We are using the web security handler and that creates a SAAJInInterceptor. That SAAJInInterceptor would always pick up weblogic one, and so we had to get the source code to both the WSS4JInInterceptor and the SAAJInInterceptor and force system properties to make them use the CXF implementations. Thank goodness for open source!

Weblogic 10 has a bug in its handling of the Content-Type field

The requirement under RFC 1521 is that Content-Type should look like:

Content-Type: type/type; param=value; param-value; etc

Under Weblogic, once charset= is found, it uses the entire rest of the line to attempt to set the charset! Under normal SOAP usage, this will also include the SOAP's action so the char set was (in our case) something like UTF-8;action="/blah/blah/blah" - which of course wasn't being handled properly.

So thats it. I think.

Saturday, August 16, 2008

Conferences, Conferences

by Richard Vowles

So I have been trying to help organise our (Developers Inc Ltd's) participation in a couple of conferences in the last little while, but I really am simply not an organisation kind of person.

Developers Inc Ltd are going to be at two conferences coming up - TechEd 2008 (Microsoft's big love-in for developers and those unfortunate souls who we call "operations"). If I spent much of my development life looking down at Microsoft developers (whether warranted or not), I surely am a snob when it comes to operations staff (even though I know some very clever ones). Anyway, back to TechEd - we have a booth, and will be giving out Coke and developer stuff that relates to what we sell in the Microsoft space (Microsoft, CodeGear, Capable Objects and JetBrains).

The next event coming up after that is September 17th - the Java Emerging Technologies Conference, which is going to be less of a conference than a group of people who have lots of Java related tech to talk about getting together in one place and gabbing. I have had difficulty getting speakers (the speakers/sponsors is the chicken egg situation - we can get international speakers, but we have to have the money, can't get the money unless we have a decent number of attendees who would be attracted by speakers). So now I will possibly be speaking a number of times.

And in October there should be the Delphi 2009 launches, so that along with my work with TEIQ should keep me busy!