sca-j message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: Potential issues
- From: Bryan Aupperle <aupperle@us.ibm.com>
- To: sca-j@lists.oasis-open.org
- Date: Wed, 1 Sep 2010 10:28:58 -0400
While working on the new test cases for
Issue 209, two potential issues arose.
1) Interaction between @Service and
@WebService
Consider the following...
@Service(ServiceWithName.class)
public class serviceWithNameImpl implements
ServiceWithName {
...
}
and
@WebService(name="AnnotationName")
@Remotable
public interface ServiceWithName {
...
}
The @Service annotation would imply
that the service name of a component using serviceWithNameImpl as an implementation
would be ServiceWithName but @WebService annotation requires the service
name to be AnnotationName. Which takes precedence? Or should
the conflict be raised as an error?
2) We may have misinterpreted the impacts
of @WebFault. The current text in both the CAA and JCI specs indicates
that the name attribute of a @WebFault annotation impacts the name of the
fault in the interface. Some experimentation suggests that this is
not the case.
The combination of :
@WebService
public class Service1WithFaultWFImpl
implements Service1WithFaultWF {
public
String operation1(String input) throws BusinessFault3 {
...
}
}
@WebService
public interface Service1WithFaultWF
{
public
String operation1 ( String input ) throws BusinessFault3;
}
@WebFault(name="BusinessFault")
public class BusinessFault3 extends
Exception {
...
}
and
public class BusinessFault3Bean {
private
String data;
public
String getData() {
return data;
}
public
void setData(String faultData) {
data = "faultData;
}
}
result in a WSDL file of
<?xml version="1.0" encoding="UTF-8"?><!--
Generated by JAX-WS RI at http://jax-ws.dev.java.net.
RI's version is JAX-WS RI 2.1.1 in JDK 6. --><definitions name="Service1WithFaultWFImplService"
targetNamespace="http://test/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://test/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<types>
<xsd:schema>
<xsd:import
namespace="http://test/"
schemaLocation="Service1WithFaultWFImplService_schema1.xsd"/>
</xsd:schema>
</types>
<message name="operation1">
<part element="tns:operation1"
name="parameters"/>
</message>
<message name="operation1Response">
<part element="tns:operation1Response"
name="parameters"/>
</message>
<message name="BusinessFault3">
<part element="tns:BusinessFault"
name="fault"/>
</message>
<portType name="Service1WithFaultWFImpl">
<operation name="operation1">
<input message="tns:operation1"/>
<output message="tns:operation1Response"/>
<fault message="tns:BusinessFault3"
name="BusinessFault3"/>
</operation>
</portType>
<binding name="Service1WithFaultWFImplPortBinding"
type="tns:Service1WithFaultWFImpl">
...
</binding>
<service name="Service1WithFaultWFImplService">
...
</service>
</definitions>
with
<?xml version="1.0" encoding="UTF-8"?><xs:schema
targetNamespace="http://test/"
version="1.0" xmlns:tns="http://test/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="BusinessFault"
nillable="true" type="tns:businessFault3Bean"/>
<xs:element name="operation1"
type="tns:operation1"/>
<xs:element name="operation1Response"
type="tns:operation1Response"/>
<xs:complexType name="operation1">
...
</xs:complexType>
<xs:complexType name="operation1Response">
...
</xs:complexType>
<xs:complexType name="businessFault3Bean">
<xs:sequence>
<xs:element
minOccurs="0" name="data" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Note that in the operation, the name
of the fault s BusinessFault3, not BusinessFault. The name attribute
of the @WebFault annotation only impacts the local name of the global element.
A closer reading of the JAX-WS spec is consistent with this behavior.
I think we may need to change the @WebFault content of table 11.2
of the CAA spec to remove the impact of the name attribute on the interface,
removing normative statement JCA100027, and remove section 8.2.6 of the
JCI spec
Bryan Aupperle, Ph.D.
STSM, WebSphere Enterprise Platform Software Solution Architect
WW Center of Excellence for Enterprise Systems & Banking Center of
Excellence Application Integration Architect
Research Triangle Park, NC
+1 919-254-7508 (T/L 444-7508)
Internet Address: aupperle@us.ibm.com
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]