Issue while running portlet in MWS

Hello Experts,

I am newbie in CAF portlet application development. I have few doubts about it.

  1. Can we use CAF for web application development like just creating a web service and run it in CAF or only we can use it as task Engine like creating a process model and user task in CAF.
  2. I have created a simple service which will accept a Name and based on that which will return designation which I have used as web service in my CAF portlet application. Everything is working fine but when I am running it in MWS I am getting below error -
    2015-07-14 00:01:49 EEST (jsf:ERROR) [RID:2297] - Action phase of the portlet failed (INVOKE_APPLICATION 5)
    java.lang.NoClassDefFoundError: com/webmethods/portal/webservices/wss/WSStackClientInitializer
    at com.webmethods.portal.webservices.wss.stat.SoapMonitorHandler.invoke(SoapMonitorHandler.java:64)
    at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
    at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
    at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:262)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:427)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:479)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:263)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
    at com.webmethods.caf.wsclient.arnab.testcaf.employeedesg.ArnabTestCAFEmployeeDesgStub.employeeDesignation(ArnabTestCAFEmployeeDesgStub.java:182)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.webmethods.caf.faces.data.object.ObjectMethodContentProvider.refresh(ObjectMethodContentProvider.java:366)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:254)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
    at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
    at com.webmethods.caf.faces.application.CAFMethodBinding.invoke(CAFMethodBinding.java:65)
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)
    at javax.faces.component.UICommand.broadcast(UICommand.java:315)
    at com.webmethods.caf.faces.component.ViewRoot.broadcastEvents(ViewRoot.java:235)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1251)
    at com.webmethods.caf.faces.component.ViewRoot.processApplication(ViewRoot.java:118)
    at com.webmethods.caf.faces.portlet.PortletLifecycle$InvokeApplicationPhase.execute(PortletLifecycle.java:795)
    at com.webmethods.caf.faces.portlet.PortletLifecycle.phase(PortletLifecycle.java:307)
    at com.webmethods.caf.faces.portlet.PortletLifecycle.execute(PortletLifecycle.java:183)
    at com.webmethods.caf.faces.portlet.FacesPortlet.processAction(FacesPortlet.java:345)
    at com.webmethods.portal.framework.portletcontainer.impl.PortletApplicationHandler.process(PortletApplicationHandler.java:536)
    at com.webmethods.portal.framework.portletcontainer.servlet.PortletServlet.service(PortletServlet.java:58)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:457)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:276)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
    at com.webmethods.portal.framework.portletcontainer.PortletContainer.dispatch(PortletContainer.java:221)
    at com.webmethods.portal.framework.portletcontainer.PortletContainer.process(PortletContainer.java:132)
    at com.webmethods.portal.framework.portletcontainer.PortletContainer.processPortletAction(PortletContainer.java:110)
    at com.webmethods.portal.framework.portlet.beans.rest.RestfulPCAHandler.handle(RestfulPCAHandler.java:194)
    at com.webmethods.portal.framework.dispatch.DispatchManager.handle(DispatchManager.java:502)
    at com.webmethods.portal.framework.dispatch.DispatchManager.handleDispatch(DispatchManager.java:424)
    at com.webmethods.portal.framework.impl.PortalServlet.service(PortalServlet.java:309)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
    at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82)
    at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:256)
    at com.webmethods.caf.faces.servlet.GZIPFilter.doFilter(GZIPFilter.java:48)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    at com.webmethods.portal.framework.impl.NTLMV1Filter.doFilter(NTLMV1Filter.java:67)
    at com.webmethods.portal.framework.impl.NTLMFilter.doFilter(NTLMFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    at com.webmethods.portal.framework.impl.RequestFilter.doFilter(RequestFilter.java:56)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:370)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:724)

Am I missing something here? Any help is highly appreciated. :slight_smile:

Thanks,
Arnab

Hi Arnab,

to 1)
You can use a CAF-Portlet application to connect to a WebService.
You do not need to implement BPM/TaskEngine.

Can you provide your wM version please?

to 2)
Can you share some more details how you have implemented the service and the CAF portlet?
This will help to determine what went wrong.

Regards,
Holger

Thanks for your response.
wM version is 9.5

For the CAF portlet its a simple one. I have created the service where input will come as name and the output will be designation based on the name. If wrong name supplied error will be shown.

I have drag and drop the web service connector in the default view in designer which automatically created the text input and refresh button.

So I have configured the MWS and published it. After successfully publishing in MWS while clicking on button I am getting the error.

Is it like I am missing any class file in MWS? Any external jar need to be added??/

Thanks,
Arnab

Please check for the usage of the WS-Handler in MWS.

There are 2 of them, the Glue-Stack and WS-Stack.
They behave different at some points but I am not sure which exactly and how.

Please have a look ath the following Guides:

  • 9-5-SP1_CAF_Development_Help.pdf
  • 9-5-SP1_Web_Services_Stack_Help.pdf
  • 9-5-SP1_Working_with_Designer.pdf

They are available from Empower, from your local installation if you have the Documentation component installed or from the Community (http://techcommunity.softwareag.com/ecosystem/communities/public/_communities/documentation).

Regards,
Holger

Additionally you should check for any fixes for MWS, Glue, WS-Stack and Designer CAF Development.

DES_9.5_SP1_CAD_Fix
WSS_9.5_SP1_Fix
SCG_9.5_SP1_Glue_Fix
MWS_9.5_SP1_Fix

You will need SoftwareDownload rights for your license to check these at Empower.

Regards,
Holger

Hi Arnab,

Did you manage to fix the problem?

If not can you let us what is the class that your WSC (Web Service Connector) generated class is extending?

Is it something like:


public class MyClass extends GlueWSClientContentProvider {  

Hope it helps,
Vlad

Hello,

I have raised a SR to SAG for the issue. Looks like its a bug which is solved in MWS_9.5_SP1_Fix3.

Thanks,
Arnab

Hi,

Im new at the CAF UI development.

I tried to run a simple service that gave the output in a string.

When i deploy the portlet in MWS and click refresh i get this message at the top.

" com/webmethods/portal/webservices/wss/WSStackClientInitializer "

Im using webMethods 9.5.1.

any idea why this issue is there ?

-Kiran

i’m using wM 9.5.1 version and getitng the same error - have you found the fix ?

To resolve the issue, perform the steps below:

  1. Stop the My webMethods Server.
  2. Back up the files wsstat.mar and wssstat.mar, located in <SAG_Install_Dir>/MWS/server/default/config/wssrepository/modules.
  3. Remove the ‘wssstat.mar’ file, located in <SAG_Install_Dir>/MWS/server/default/config/wssrepository/modules.
  4. Copy the wsstat.mar file from the archive provided by SAG(9.7 version file) to <SAG_Install_Dir>/MWS/server/default/config/wssrepository/modules.
  5. Start the My webMethods Server and user will open the page without any error