Hi,
The simplest approach is to create a binding interface contract in WSDL out
of the java interface using document-literal-wrapper style, set the
databinding to an XML one such as AXIOM, DOM or XMLString, then the
databinding framework will create a wrapper XML element representing the
payload.
JavaBeans will be treated as JAXB objects with default Java/XML mapping
rules. They will be marshaled as XML too.
Thanks,
Raymond
--------------------------------------------------
From: "Wojtek Janiszewski" <[EMAIL PROTECTED]>
Sent: Wednesday, July 23, 2008 3:25 PM
To: <[email protected]>
Subject: Re: [DISCUSS] Next steps to develop CORBA support for Tuscany
Hi, Raymond.
Do we need to use any specific schema for message body, or we introduce
our own?
To fill argument, result and faults attributes we will use serializers
from SDO and JAXB. How about Java serializable objects? Are there any XML
serializers to use, or can we just use standard object serialization (ie.
writeObject(..) from ObjectOutputStream)?
Thanks,
Wojtek
Raymond Feng wrote:
Hi, Wojtek.
I have looked into the code to support binding.sca over CORBA (or
RMI/IIOP). There is one issue I would like to bring up. At this moment,
we pass the input/output/fault data based on the operation signature
to/from CORBA. This approach works well if all the data types are
RMI/IIOP-friendly, such as primitive types or Serializable classes. But
it will have trouble deal with XML-friendly data types such as JAXB or
SDO which are not necessarily java Serializable. By the SCA spec, the
remotable interfaces should be mappable to WSDL (which hints XSD).
Favoring XML over Java as the wire format will make more sense in the SOA
world. In fact, that's why we initially implement binding.sca over Web
Service.
I suggest that we take a slight different approach to exchange data for
binding.sca over the CORBA transport. We will define a fixed CORBA
operation to exchange the input/output/fault data. For example,
public interface SCABindingService {
String invoke(String inputMessage) throws WrappedServiceException;
}
WrappedServiceException will be used to wrap a business fault (in XML
String format).
public class WrappedServiceException extends Exception {
private String faultMessage;
public String getFaultMessage();
public void setFaultMessage(String faultMessage);
}
All the data will be represented as XML strings in UTF-8 encoding
following the JAX-WS document-literal-wrapper style. For example,
Request:
<op1 ...>
<arg0>...</arg0>
...
<argN>...</argN>
</op1>
Response:
<op1Response ...>
<return>...</return>
</op1>
Fault:
<fault1 ...>
...
</fault1>
What do you think?
Thanks,
Raymond
--------------------------------------------------
From: "Wojtek Janiszewski" <[EMAIL PROTECTED]>
Sent: Tuesday, July 22, 2008 11:35 AM
To: <[email protected]>
Subject: Re: [DISCUSS] Next steps to develop CORBA support for Tuscany
Doing (2) sounds good to me as well, and one other thing as you've made
such great progress with the binding would be write some doc about it
for the wiki like we have for the other extensions. You could add a
page in http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Home to
work on it and use the others as examples, eg [1], [2], [3].
...ant
[1] http://tuscany.apache.org/sca-java-bindingjms.html
[2] http://tuscany.apache.org/sca-java-bindingejb.html
[3] http://tuscany.apache.org/sca-java-bindingws.html
Hi,
I've just created first version of CORBA binding doc [1]. I'm wondering
if I should describe how user should provide correct Java interface -
now I just linked to mapping rules on OMG site.
Any comments and edits are appreciated!
Thanks,
Wojtek
[1] -
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/SCA+Java+binding.corba