Troubleshooting: Developing using service-oriented architecture (SOA)
You might experience the following problems when you develop applications using SOA.
Error CMN0203E when working with Struts configuration files
000000e5 WC_SERVER 3 -673d4df:1235cd8ecc0:-7fff com.ibm.commerce.struts.BaseAction.executeView actionName=JspView
000000e5 WC_SERVER 3 -673d4df:1235cd8ecc0:-7fff com.ibm.commerce.struts.BaseAction.executeView unknown view from path info
The name of the command specified cannot be resolved to an implementation. The WebSphere Commerce server attempted to resolve a URL request to a command implementation or the command interface specified cannot be resolved to an implementation.
- Ensure that the specified command has been defined in the appropriate configuration files.
- If the command is a view command, ensure the Struts configuration for this view is defined as a forward configuration with the correct view name, store ID and device ID.
- If the command is a controller command or URL request, ensure the Struts configuration files contain an action configuration between the URL and the command interface name that represents that URL.
- If the command cannot be resolved based on the command interface name, update the CMDREG table to contain a mapping between the interface name and the command implementation.
- If the changes were made to the configuration files while the server is running, the registries may need to be refreshed. Refreshing the registries can be done using the WebSphere Commerce Administration Console by navigating to and updating either the Struts or command registry.
- If the command is a view name defined in the
<global-forwards>
section of the configuration file, ensure a corresponding action with the same path name and of typecom.ibm.commerce.struts.BaseAction
is defined in the configuration file.
Error CNTR0020E when attempting to run service
000000a5 RemoteExcepti E CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "your_method"
on bean "BeanId(WC#your_server.jar#your_service_impl, null)". Exception data: java.lang.RuntimeException:
org.eclipse.emf.ecore.resource.Resource$IOWrappedException: Package with uri 'http://services.your_hostname.com/
your_directory' not found. (, 1, 255)
at com.your_hostname.commerce.your_component.facade.server.your_service_impl.
your_method(your_service_impl.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at com.ibm.ws.webservices.engine.dispatchers.java.JavaDispatcher.invokeMethod(JavaDispatcher.java:178)
at com.ibm.ws.webservices.dispatchers.ejb.J2ee14EJBDispatcher.invokeMethod(J2ee14EJBDispatcher.java:269)
at com.ibm.ws.webservices.engine.dispatchers.java.JavaDispatcher.invokeOperation(JavaDispatcher.java:141)
To
resolve this issue, ensure that you have deployed your
xml/config/your_component to your server.Invalid column definition when running generated unit tests
Invalid column definition: column "your_column" does not exist in table "your_table".
This
error can occur when the Java Emitter Template (JET) pattern makes assumptions about the physical
schema. It assumes certain table and column names and builds a query, and returns an error when the
table and column names do not match.To resolve this issue, update the query template files to match your specific physical schema.
Custom Business Object Mediators fail because the getRootEClass() method is not implemented to return the root physical SDO object
00000033 bod 1
com.ibm.commerce.foundation.server.command.bod.BusinessObjectDocumentProcessor
processBusinessObjectDocument(BusinessObjectDocumentType, String) catch throwable
Current exception:
Message:
null
Stack trace:
com.ibm.websphere.command.CommandException
at com.ibm.commerce.foundation.server.command.bod.BusinessObjectCommandTargetImpl.executeCommand(BusinessObjectCommandTargetImpl.java:137)
at com.ibm.websphere.command.TargetableCommandImpl.execute(TargetableCommandImpl.java:139)
at com.ibm.websphere.command.CacheableCommandImpl.execute(CacheableCommandImpl.java:138)
at com.ibm.commerce.foundation.server.command.bod.BusinessObjectDocumentProcessor.processBusinessObjectDocument
(BusinessObjectDocumentProcessor.java:198)
at com.bec.commerce.order.becorderservicemodule.facade.server.BECOrderServiceModuleFacadeImpl.getBECHoliday
(BECOrderServiceModuleFacadeImpl.java:33)
at com.bec.commerce.order.becorderservicemodule.facade.server.BECOrderServiceModuleServicesImpl.getBECHoliday
(BECOrderServiceModuleServicesImpl.java:22)
To
resolve this issue, update the Data Service configuration of the CustomAppProperties-Server project:- Open the CustomAppPropertiesMetadata class.
- Implement the getRootEClass() method to return the root physical SDO object. Replace the body of
the getRootEClass() method with the following
snippet:
return com.redbooks.commerce.customappproperties.facade.server.entity.datat ypes.impl.CustomAppPropertiesEntityPackageImpl.eINSTANCE.getCustomAp pPropertiesRoot();
- Find the line following
line:
private static final String PACKAGE_NAME = "";
- Replace it with the following
line:
private static final String PACKAGE_NAME = "com.redbooks.commerce.customappproperties.facade.server.entity.data types.impl.CustomAppPropertiesEntityPackageImpl";
- Save your changes and close the file.
Exception handling when working with Web services
You might encounter issues with exception handling when working with Web services.
For example, in the following scenario:
Using Web services locally from inside the EAR, complete a register and logon (MemberFacadeClient) flow. A TransactionRollBack is encountered when an exception occurs, however, the typical flow continues without an active transaction.
To resolve this issue, ensure that you can recover from transaction failures and handle errors effectively.