Handle the exceptions. On Sun, Jan 26, 2020 at 5:51 PM zahid <zahidr1...@gmail.com> wrote:
> Hi, > > How can make this client code work in Struts ? > > Please see two pieces of comparative client code , common RMIInterface > interface , and struts problem report :- > > package org.apache.struts.helloworld.model; > > import java.net.MalformedURLException; > import java.rmi.Naming; > import java.rmi.NotBoundException; > import java.rmi.RemoteException; > import org.acme.rmi.RMIInterface;; > > public class MessageStore { > > private String message; > private static RMIInterface look_up; > > public MessageStore() throws MalformedURLException, > RemoteException, NotBoundException > { > look_up = (RMIInterface) Naming.lookup("//localhost/MyServer"); > String response = look_up.helloTo("coco"); > message = "Hello Struts User" + response; > } > > public String getMessage() { > return message; > } > } > > > Other working client code this works : > > package org.acme.rmiclient; > > import java.net.MalformedURLException; > import java.rmi.Naming; > import java.rmi.NotBoundException; > import java.rmi.RemoteException; > > import javax.swing.JOptionPane; > > import org.acme.rmiinterface.RMIInterface; > > public class ClientOperation { > > private static RMIInterface look_up; > > public static void main(String[] args) > throws MalformedURLException, RemoteException, NotBoundException { > > look_up = (RMIInterface) Naming.lookup("//localhost/MyServer"); > String txt = JOptionPane.showInputDialog("What is your name?"); > > String response = look_up.helloTo(txt); > JOptionPane.showMessageDialog(null, response); > > } > > } > > > package org.acme.rmi; > > import java.rmi.Remote; > import java.rmi.RemoteException; > > public interface RMIInterface extends Remote { > > public String helloTo(String name) throws RemoteException; > > } > > > Struts Problem Report > > Struts has detected an unhandled exception: > > *Messages*: > > 1. Unresolved compilation problems: Unhandled exception type > MalformedURLException Unhandled exception type RemoteException > Unhandled exception type NotBoundException > 2. Method "execute" failed for object > org.apache.struts.helloworld.action.HelloWorldAction@78453883 > > *File*: org/apache/struts/helloworld/action/HelloWorldAction.java > *Line number*: 11 > > ------------------------------------------------------------------------ > > > Stacktraces > > *ognl.MethodFailedException: Method "execute" failed for object > org.apache.struts.helloworld.action.HelloWorldAction@78453883 > [java.lang.Error: Unresolved compilation problems: Unhandled exception > type MalformedURLException Unhandled exception type RemoteException > Unhandled exception type NotBoundException ]* > > ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1556) > ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68) > > > com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:98) > > > com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:90) > ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1620) > ognl.ASTMethod.getValueBody(ASTMethod.java:91) > ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) > ognl.SimpleNode.getValue(SimpleNode.java:258) > ognl.Ognl.getValue(Ognl.java:470) > ognl.Ognl.getValue(Ognl.java:434) > com.opensymphony.xwork2.ognl.OgnlUtil$3.execute(OgnlUtil.java:374) > > > com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecuteMethod(OgnlUtil.java:426) > com.opensymphony.xwork2.ognl.OgnlUtil.callMethod(OgnlUtil.java:372) > > > com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:438) > > > com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:293) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254) > > > org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:250) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) > > > org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:142) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:137) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:137) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:201) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:67) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:133) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:85) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:101) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:142) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:160) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:175) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:121) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:167) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:203) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:196) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48) > > org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:574) > > > org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79) > > > org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141) > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) > > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) > > > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) > > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) > > > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) > > > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) > org.apache.tomcat.util.net > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598) > org.apache.tomcat.util.net > .SocketProcessorBase.run(SocketProcessorBase.java:49) > > > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > > > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > > > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > java.base/java.lang.Thread.run(Thread.java:834) > > > *java.lang.Error: Unresolved compilation problems: Unhandled exception > type MalformedURLException Unhandled exception type RemoteException > Unhandled exception type NotBoundException* > > > > org.apache.struts.helloworld.action.HelloWorldAction.execute(HelloWorldAction.java:11) > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > > > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > java.base/java.lang.reflect.Method.invoke(Method.java:566) > ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:899) > ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1544) > ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68) > > > com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:98) > > > com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:90) > ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1620) > ognl.ASTMethod.getValueBody(ASTMethod.java:91) > ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) > ognl.SimpleNode.getValue(SimpleNode.java:258) > ognl.Ognl.getValue(Ognl.java:470) > ognl.Ognl.getValue(Ognl.java:434) > com.opensymphony.xwork2.ognl.OgnlUtil$3.execute(OgnlUtil.java:374) > > > com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecuteMethod(OgnlUtil.java:426) > com.opensymphony.xwork2.ognl.OgnlUtil.callMethod(OgnlUtil.java:372) > > > com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:438) > > > com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:293) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254) > > > org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:250) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) > > > org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:142) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:137) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:137) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:201) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:67) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:133) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:85) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:101) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:142) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:160) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:175) > > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:121) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:167) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:203) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:196) > > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) > > > org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48) > > org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:574) > > > org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79) > > > org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141) > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) > > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) > > > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) > > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) > > > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) > > > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) > org.apache.tomcat.util.net > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598) > org.apache.tomcat.util.net > .SocketProcessorBase.run(SocketProcessorBase.java:49) > > > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > > > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > > > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > java.base/java.lang.Thread.run(Thread.java:834) > > > ------------------------------------------------------------------------ > > You are seeing this page because development mode is enabled. > Development mode, or devMode, enables extra debugging behaviors and > reports to assist developers. To disable this mode, set: > > struts.devMode=false > > in your|WEB-INF/classes/struts.properties|file. > -- em: davelnew...@gmail.com mo: 908-380-8699 tw: @dave_newton <https://twitter.com/dave_newton> li: dave-newton <https://www.linkedin.com/in/dave-newton/> gh: davelnewton <https://github.com/davelnewton> so: Dave Newton <http://stackoverflow.com/users/438992/dave-newton> bl[0]: Bucky Bits <http://buckybits.blogspot.com/> bl[1]: Maker's End Blog <https://blog.makersend.com> sk: davelnewton_skype