A set of specific tips to help you troubleshoot problems you experience with the Web Services Invocation Framework (WSIF).
For information about resolving WebSphere-level problems, see Diagnosing and fixing problems.
To identify and resolve Web Services Invocation Framework (WSIF)-related problems, you can use the standard WebSphere Application Server trace and logging facilities. If you encounter a problem that you think might be related to WSIF, you can check for error messages in the WebSphere Application Server administrative console, and in the application server stdout.log file. You can also enable the application server debug trace to provide a detailed exception dump.
A list of the WSIF run-time system messages, with details of what each message means, is provided in Message reference for WSIF.
A list of the main known restrictions that apply when using WSIF is provided in WSIF - Known restrictions.
Here is a checklist of major WSIF activities, with advice on common problems associated with each activity:
Handcrafted WSDL can cause numerous problems. To help ensure that your WSDL is valid, use a tool such as WebSphere Development Studio for iSeries (WDS) to create your Web service.
Follow the correct format for creating a WSIF service, port, operation and message. For examples of correct code, see Example: Using WSIF to invoke the AddressBook Sample Web service dynamically.
Verify the WebSphere Application Server server.policy file (in the /properties directory) has the correct security settings. For more information, see Enabling security for WSIF.
Check that the wsif.properties file is correctly set up. For more information, see wsif.properties file - Initial contents.
Either check that you have defined the class path correctly to include references to your client classes, WSIF JAR files and any other necessary JAR files, or (preferably) run your client using the WebSphere Application Server launchClient tool.
Either check that you have defined the class path correctly to include references to your client classes, WSIF JAR files and any other necessary JAR files, or (preferably) run your client using the WebSphere Application Server launch client tool. For more information about this tool, refer to the Running application clients chapter of the Developing and deploying applications PDF book.
This problem usually indicates an error in the class path setup. Check that the relevant JAR files are included.
Some likely causes are:
You might also try the following checks:
Check that the WebSphere Application Server server.policy file (in the /properties directory) has the correct security settings. For more information, see Enabling security for WSIF.
Before you deploy a Web service to WebSphere Application Server, decide on the scope of the Web service. The deployment descriptor file dds.xml for the Web service includes the following line:
<isd:provider type="java" scope="Application" ......
You can set the Scope attribute to Application or Session. The default setting is Application, and this value is correct if each request to the Web service does not require objects to be maintained for longer than a single instance. If Scope is set to Application the objects are not available to another request during the execution of the single instance, and they are released on completion. If your Web service needs objects to be maintained for multiple requests, and to be unique within each request, set the scope to Session. If Scope is set to Session, the objects are not available to another request during the life of the session, and they are released on completion of the session. If scope is set to Application instead of Session, you might get the following SOAP error:
SOAPException: SOAP-ENV:ClientParsing error, response was: FWK005 parse may not be called while parsing.; nested exception is: [SOAPException: faultCode=SOAP-ENV:Client; msg=Parsing error, response was: FWK005 parse may not be called while parsing.; targetException=org.xml.sax.SAXException: FWK005 parse may not be called while parsing.]
You should not use the same names for messaging queues and queue connection factories that run on application servers on different machines, because WSIF always looks first for JMS destinations locally, and only uses the full JNDI reference if it cannot find the destination locally. For example, if you run a Web service on a remote machine, and have an application server running locally that uses the same names for the messaging queues and queue connection factories, then WSIF will find and use the local queues even if the remote JNDI destination is provided in full in the WSDL service definition.
SibMessage W [:] CWSIT0009W: A client request failed in the application server with endpoint <endpoint_name> in bus <your_bus> with reason: CWSIT0016E: The user ID null failed authentication in bus <your_bus>.
For the steps to take to resolve the problem, see the following service integration technologies troubleshooting tip: After you migrate an application server to WebSphere Application Server V6, existing Web services clients can no longer use SOAP over JMS to access services hosted on the migrated server.
This
restriction is due to the fact that the IBM Web Service SOAP provider is designed
to interoperate fully with a JAX-RPC compliant Web service, and Apache SOAP
cannot provide such a service. To enable interoperation, modify either your
Web service or the WSIF default SOAP provider as described in WSIF SOAP provider: working with legacy applications.