# Class WebServiceSamplerGui

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.apache.jmeter.gui.AbstractJMeterGuiComponent
org.apache.jmeter.samplers.gui.AbstractSamplerGui
org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui

All Implemented Interfaces:
  `ActionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ClearGui, JMeterGUIComponent, Printable`

public class WebServiceSamplerGui extends AbstractSamplerGui implements ActionListener
This is the GUI for the webservice samplers. It extends AbstractSamplerGui and is modeled after the SOAP sampler GUI. I've added instructional notes to the GUI for instructional purposes. XML parsing is pretty heavy weight, therefore the notes address those situations.
Created on: Jun 26, 2003

See Also:
  - Serialized Form

## Nested Class Summary

### Nested classes/interfaces inherited from class JPanel

`JPanel.AccessibleJPanel`

### Nested classes/interfaces inherited from class JComponent

`JComponent.AccessibleJComponent`

### Nested classes/interfaces inherited from class Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

## Field Summary

### Fields inherited from class AbstractJMeterGuiComponent

`namePanel`

### Fields inherited from class JComponent

`listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

### Fields inherited from class Component

`accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

## Constructor Summary

Constructors
Constructor
Description
`WebServiceSamplerGui()`

## Method Summary

Modifier and Type
Method
Description
`void`
`actionPerformed(ActionEvent event)`
method from ActionListener
`String[]`
`browseWSDL(String url, boolean silent)`
The method uses WSDLHelper to get the information from the WSDL.
`void`
`clearGui()`
Implements JMeterGUIComponent.clearGui
`void`
`configure(TestElement el)`
the implementation loads the URL and the soap action for the request.
`void`
`configureFromWSDL()`
configure the sampler from the WSDL.
`TestElement`
`createTestElement()`
JMeter test components are separated into a model and a GUI representation.
`String`
`getLabelResource()`
Get the component's resource name, which getStaticLabel uses to derive the component's label in the local language.
`void`
`modifyTestElement(TestElement s)`
Modifies a given TestElement to mirror the data in the gui components.

### Methods inherited from class AbstractSamplerGui

`createPopupMenu, getMenuCategories`

### Methods inherited from class AbstractJMeterGuiComponent

`configureTestElement, createTitleLabel, getComment, getDocAnchor, getName, getNamePanel, getPrintableComponent, getStaticLabel, isEnabled, makeBorder, makeScrollPane, makeScrollPane, makeTitlePanel, setComment, setEnabled, setName`

### Methods inherited from class JPanel

`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

### Methods inherited from class JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

### Methods inherited from class Container

`add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

### Methods inherited from class Component

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### WebServiceSamplerGui

public WebServiceSamplerGui()

## Method Details

### getLabelResource

public String getLabelResource()
Description copied from interface: `JMeterGUIComponent`
Get the component's resource name, which getStaticLabel uses to derive the component's label in the local language. The resource name is fixed, and does not vary with the selected language. Normally this method should be overriden in preference to overriding getStaticLabel(). However where the resource name is not available or required, getStaticLabel() may be overridden instead.

Specified by:
  `getLabelResource` in interface `JMeterGUIComponent`
Returns:
  the resource name

### createTestElement

public TestElement createTestElement()
Description copied from interface: `JMeterGUIComponent`
JMeter test components are separated into a model and a GUI representation. The model holds the data and the GUI displays it. The GUI class is responsible for knowing how to create and initialize with data the model class that it knows how to display, and this method is called when new test elements are created.

Specified by:
  `createTestElement` in interface `JMeterGUIComponent`
Returns:
  the Test Element object that the GUI component represents.
See Also:
  - `JMeterGUIComponent.createTestElement()`

### modifyTestElement

public void modifyTestElement(TestElement s)
Modifies a given TestElement to mirror the data in the gui components.

Specified by:
  `modifyTestElement` in interface `JMeterGUIComponent`
Parameters:
  `s` - the TestElement to modify
See Also:
  - `JMeterGUIComponent.modifyTestElement(TestElement)`

### clearGui

public void clearGui()
Implements JMeterGUIComponent.clearGui

Specified by:
  `clearGui` in interface `ClearGui`
Overrides:
  `clearGui` in class `AbstractJMeterGuiComponent`

### configure

public void configure(TestElement el)
the implementation loads the URL and the soap action for the request.

Specified by:
  `configure` in interface `JMeterGUIComponent`
Overrides:
  `configure` in class `AbstractJMeterGuiComponent`
Parameters:
  `el` - the TestElement to configure

### configureFromWSDL

public void configureFromWSDL()
configure the sampler from the WSDL. If the WSDL did not include service node, it will use the original URL minus the querystring. That may not be correct, so we should probably add a note. For Microsoft webservices it will work, since that's how IIS works.

### browseWSDL

public String[] browseWSDL(String url, boolean silent)
The method uses WSDLHelper to get the information from the WSDL. Since the logic for getting the description is isolated to this method, we can easily replace it with a different WSDL driver later on.

Parameters:
  `url` - URL to the WSDL
  `silent` - flag whether errors parsing the WSDL should be shown to the user. If `true` errors will be silently ignored
Returns:
  array of web methods

### actionPerformed

public void actionPerformed(ActionEvent event)
method from ActionListener

Specified by:
  `actionPerformed` in interface `ActionListener`
Parameters:
  `event` - that occurred