Michael Schuerig wrote:
I've just spent a quarter of an hour without success to find out how to enter a bug for WSIF in Bugzilla. So, if anyone knows their way around there better than me, please enter this.
hi Michael,
use http://nagoya.apache.org/jira/browse/WSIF
(we do need to update website!)
I've attached a tiny diff of changes for two thingsWSIF in CVS is already patched for that (i think i did weeks ago) - see doc/changes.html
* make WSIF compile (and work!) with Axis 1.2RC
<a name="WSIF_2_0_1"><h3>interim builds(WSIF_2_0_1) </h3></a>
<ul>
<li>2004-10-12: moved to use AXIS 1.2 RC1: important backward change in WSIFJavaTestCaseWriter to use
new method writeComment(pw, p.getDocumentationElement(), true) instead of writeComment(pw, p.getDocumentationElement())
that no longer exist, additionally replaced all calls to no longer existing setScopedProperty() with setProperty()
</li>
but this confusion indicates that next release of WSIF needs to be done just after AXIS 1.2 final is made available.
* fix bug in handling of custom de/serializers in the Axis provider
your patch was applied.
i have also updated CVS to use the latest RC2 version JAR files.
thanks,
alek
Yes, it is possible to use custom de/serializers with WSIF and Axis. Just like this:
List<TypeSerializerInfo> typeSerializers =
new ArrayList<TypeSerializerInfo>();
typeSerializers.add(new TypeSerializerInfo(
new QName(SERVICE_NS, ELEMENT_TYPE),
MyClass.class,
new MyClassSerializerFactory(),
new MyClassDeserializerFactory()));
WSIFMessage context = operation.getContext(); // we get a clone here context.setObjectPart(WSIFAXISConstants.CONTEXT_SOAP_TYPE_SERIALIZERS, typeSerializers); operation.setContext(context);
Please note that the code above will not work correctly without the patch!
Michael
------------------------------------------------------------------------
diff -ur src-orig/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java src/org/apache/wsif/providers/s oap/apacheaxis/WSIFOperation_ApacheAxis.java --- src-orig/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java 2004-11-28 01:35:30.000000000 +01 00 +++ src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java 2004-11-28 01:19:55.000000000 +0100 @@ -1703,8 +1703,8 @@ // setup the call object call.setOperationName( new QName(getInputNamespace(), portTypeOperation.getName())); - call.setScopedProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE); - call.setScopedProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE); + call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE); + call.setProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE); call.setOperationStyle(operationStyle); setCallParameterNames(call);
@@ -2093,8 +2093,8 @@ Object serializer = tm.getSerializer(); Object deserializer = tm.getDeserializer();
- if ( (javaType != null) || (javaType.isAssignableFrom(clazz))
- && ( (elementType != null) || (elementType.equals(xmlType)) ) ){
+ if ( (javaType == null) || (javaType.isAssignableFrom(clazz))
+ && ( (elementType == null) || (elementType.equals(xmlType)) ) ){
if (serializer == null || serializer instanceof SerializerFactory
&& deserializer == null || deserializer instanceof DeserializerFactory
&& serializer != null || deserializer != null) {
-- The best way to predict the future is to invent it - Alan Kay