Posts

Showing posts from March, 2007

Why do I get a null value back...

Why do I get a null value back from my JAVA object when the data was there in my XML stream?

This is a question, that I have seen over and over with different O2X mapping technologies. Sometime using JAXB, sometime using Web Services, and now with SDO. It's also a common issue with .NET Web services.

I do see the data on the wire or in my XML file, but I am getting a null value once I try to retrive it using the JAVA accessor APIs. How is this possible, is this a bug?

The short answer is No. It's a feature!!! When the instance data do not match with the schema definition, it will be silently ignored by the XML processor (a.k.a. de-serialization layer). Let me try to give a simple example to illustrate this.


XML Schema
1 <?xmlversion="1.0"encoding="UTF-8"?>
2 <xsd:schemaxmlns="http://www.oracle.com/ias/automation/dte"
3 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4 targetNamespace="http://www.oracle.com/ias/automation/dte&q…

Multiple servies in a single application.

Image
Here are some simple step by step instructions to be able to package two Web Services that implement the same service with different SEI, using a single contract (the wire format as described in the WSDL).

Here is the Ant task once would write to achieve this:


<o:topdownassemble uri="PojoPricer"
output="./to_hide"
classname="com.siebel.ordermanagement.quote.psp.PojoPriceCalculator"
input="./classes"
wsdl="./etc/calculateprice.wsdl"/>
<o:topdownassemble uri="XmlPricer"
output="./to_hide"
classname="com.siebel.ordermanagement.quote.psp.XmlPriceCalculator"
input="./classes"
wsdl="./etc/calculateprice.wsdl"
ear="./dist/${app.name}.ear"
databinding="false"
appendtoexistingdds="true/>

Unfortunately, this will not work, as the two service endpoints are using the same service name.


[o:topDownAssemble] oracle.j2ee.ws.common.tools.api.ValidationException…

Scalling your Web Site for the un-expected...

Image
This was so funny (or sad) that I could not keep it for myself: A web application with Oracle's branding that is not able to handle the load as the Access ODBC drivers gets the number of connections down to 0. There was just a few hundreds of frantic web shoppers trying to get first to the registration page. A static HTML form may have done just fine.

Next time you design a web site to scale up, remember to avoid unnecessary use of resource that are finite...

soap UI - or a dream come true

Image
If you are on the market for a tool that can help you with your SOA quest, here is a new addition to the mandatory toolbox (or USB key swiss knife).

Finding Oracle in the drop-down list, together with Axis and XFire is a sign: there are some real people out there using our stuff.

And, the best part is that it works!!! I won't need to continu maintaining my own ant scripts for plain vanilla use of wsa when I am not using JDeveloper. Download the latest here and see it for yourself, if you don't believe me.

Vista unzip performance, PNG files and more

I) Unzip speed.

I found an easy work around for my unzip issue; it's called PODP (Plain Old Dos Promt). Thanks to C. Spieler, I can execute unzip from the command line.
C:\Users\erajkovi\Downloads>unzip sqldeveloper-1.1.2.2579-no-jre.zip -d \optII) Screen capture and files size.

This may just be a fact: PNG is far from giving you a compression level that is comparable to JPEG on Windows Vista, using Paint. I have done a screen capture of my full desktop screen (1280x1024) and save it in PNG, as I was becoming acoustate to use open formats. The bottom line:

vista-desktop.jpg -> size = 190KBvista-desktop.png -> size = 2.690MBI must be doing something wrong...

III) SQL Developer Migration Workbench Early Adopter for public evaluation is out !!!

JAX-WS 2.1 : First spin.

Image
JAX-WS 2.1 is out.
Here is a blog entry that will give you all the details you need: see the Fast & Furious.
For me, it means it's time to give it a try and build some interface to PayPal Web services. The performance improvement seams to be worth a closer look.In my current project, I have start to look at performance between different implementations for a given Business Process, and I am getting to the point were the interpretation of the performance number can be swinged either way, just with a few tweaks on my dataset.
Here is a tip I wanted to share with those that are trying to use SOAPElement --the JAX-RPC/SAAJ equivalent of the DOM Element-- when trying to work with large datagram that are handled as XML: Make sure you do not try to preserve whitespace. Otherwise, for every nested element you have (XMLElement) you will have an extra java object to carry the linefeed (an XMLText). It can add up very quick.

The key is on line 193, in the code folowing code snippet:
189 priv…