2626import javax .wsdl .Fault ;
2727import javax .wsdl .Input ;
2828import javax .wsdl .Operation ;
29+ import javax .wsdl .OperationType ;
2930import javax .wsdl .Output ;
3031import javax .wsdl .Port ;
3132import javax .wsdl .PortType ;
@@ -101,15 +102,19 @@ private void createBindingOperations(Definition definition, Binding binding, Por
101102 BindingOperation bindingOperation = definition .createBindingOperation ();
102103 bindingOperation .setOperation (operation );
103104 populateBindingOperation (bindingOperation , operation );
104- if (operation .getInput () != null ) {
105- BindingInput bindingInput = definition .createBindingInput ();
106- populateBindingInput (bindingInput , operation .getInput ());
107- bindingOperation .setBindingInput (bindingInput );
105+ if (operation .getStyle () == null || operation .getStyle ().equals (OperationType .REQUEST_RESPONSE )) {
106+ createBindingInput (definition , operation , bindingOperation );
107+ createBindingOutput (definition , operation , bindingOperation );
108108 }
109- if (operation .getOutput () != null ) {
110- BindingOutput bindingOutput = definition .createBindingOutput ();
111- populateBindingOutput (bindingOutput , operation .getOutput ());
112- bindingOperation .setBindingOutput (bindingOutput );
109+ else if (operation .getStyle ().equals (OperationType .ONE_WAY )) {
110+ createBindingInput (definition , operation , bindingOperation );
111+ }
112+ else if (operation .getStyle ().equals (OperationType .NOTIFICATION )) {
113+ createBindingOutput (definition , operation , bindingOperation );
114+ }
115+ else if (operation .getStyle ().equals (OperationType .SOLICIT_RESPONSE )) {
116+ createBindingOutput (definition , operation , bindingOperation );
117+ createBindingInput (definition , operation , bindingOperation );
113118 }
114119 for (Iterator faultIterator = operation .getFaults ().values ().iterator (); faultIterator .hasNext ();) {
115120 Fault fault = (Fault ) faultIterator .next ();
@@ -121,6 +126,20 @@ private void createBindingOperations(Definition definition, Binding binding, Por
121126 }
122127 }
123128
129+ private void createBindingOutput (Definition definition , Operation operation , BindingOperation bindingOperation )
130+ throws WSDLException {
131+ BindingOutput bindingOutput = definition .createBindingOutput ();
132+ populateBindingOutput (bindingOutput , operation .getOutput ());
133+ bindingOperation .setBindingOutput (bindingOutput );
134+ }
135+
136+ private void createBindingInput (Definition definition , Operation operation , BindingOperation bindingOperation )
137+ throws WSDLException {
138+ BindingInput bindingInput = definition .createBindingInput ();
139+ populateBindingInput (bindingInput , operation .getInput ());
140+ bindingOperation .setBindingInput (bindingInput );
141+ }
142+
124143 /**
125144 * Called after the {@link BindingOperation} has been created, but before any sub-elements are added. Subclasses can
126145 * implement this method to define the binding name, or add extensions to it.
0 commit comments