Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Transport error - HTTP code: 500 for URL: smartClientRPC.do

    hello.
    I have one problem that Transport error - HTTP code: 500 for URL: smartClientRPC.do

    When I move one folder to the collepsed folder, I can get this alert message.
    but When I move one folder to the expended folder, I can't show this message.
    So I found why occure this error through debuging.
    When this error show me, two server actions occure
    fetchData action to expend folder and updateData action to move folder.
    when first fetchData action on the server side success rpc.send(this.dsRequest, this.dsResponse);, but
    when second updateData action on the server side occure error rpc.send(this.dsRequest, this.dsResponse);
    client error message is Transport error - HTTP code: 500 for URL: smartClientRPC.do and server error message is follow :
    Code:
    No response for request: com.isomorphic.datasource.DSRequest@1df60c5
    java.lang.Exception: No response for request: com.isomorphic.datasource.DSRequest@1df60c5
    	at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:680)
    	at com.isomorphic.rpc.RPCManager.send(RPCManager.java:449)
    	at patent.userclass.action.UserclassSmartclientAction.execute(UserclassSmartclientAction.java:120)
    	at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    	at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at patent.common.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    WARN  [http-8080-2] org.apache.struts.chain.commands.ExceptionCatcher.postprocess(ExceptionCatcher.java:165)  =>Exception from exceptionCommand 'servlet-exception'
    java.lang.Exception: No response for request: com.isomorphic.datasource.DSRequest@1df60c5
    	at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:680)
    	at com.isomorphic.rpc.RPCManager.send(RPCManager.java:449)
    	at patent.userclass.action.UserclassSmartclientAction.execute(UserclassSmartclientAction.java:120)
    	at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    	at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at patent.common.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    2009. 1. 7 오후 7:10:11 org.apache.catalina.core.StandardWrapperValve invoke
    심각: Servlet.service() for servlet action threw exception
    java.lang.Exception: No response for request: com.isomorphic.datasource.DSRequest@1df60c5
    	at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:680)
    	at com.isomorphic.rpc.RPCManager.send(RPCManager.java:449)
    	at patent.userclass.action.UserclassSmartclientAction.execute(UserclassSmartclientAction.java:120)
    	at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    	at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at patent.common.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    Last edited by patentpia; 7 Jan 2009, 03:11.

    #2
    add more..

    Here is my client side code
    Code:
    isc.DataSource.create({
    			    ID: "treeDS",
    			    dataURL:"smartClientRPC.do",
    			    fields: [{name: "USERCLASSNAME", type:"text", title: "<fmt:message key="a.tt"/>", length: 128},
    			             {name: "USERCLASSDESC", type:"text", title: "<fmt:message key="b.de"/>", length: 128},
    			             {name: "USERCLASSPARENTSEQ", type:"integer", hidden: true, foreignKey:"USERCLASSSEQ", rootValue: treeRootId},
    			             {name: "USERCLASSSEQ", type:"integer", hidden: true, required:true, primaryKey:true},
    			             {name: "USERCLASSTYPE", type:"text", hidden: true}]
    			});
    isc.TreeGrid.create({
    				ID						:"categoryTree",
    				dataSource				:"treeDS",
    				height					:460,
    			    showConnectors			:true,
    			    alternateRecordStyles	:true,
    			    canReorderRecords		:false,
    				canAcceptDroppedRecords	:true,
    				canReparentNodes		:true,// 자신이 아닌 다른 부모에 드롭 가능
    				canDropOnLeaves			:false, 
    				canEdit					:true,
    			    editEvent				:"none",
    			    editByCell				:true,
    				canDragRecordsOut		:false,// 다른 컨트롤로 드레그 불가
    				autoSaveEdits			:true,
    				autoDraw				:false,
    				autoFetchData			:true,
    				selectionType			:"single",
    				dragDataAction			:"move",
    				//fastCellUpdates			:true,
    			   	fields : [{name:"USERCLASSNAME", title:"<fmt:message key="b.treetl"/>", treeField:true},
    			   	          {name:"USERCLASSDESC", title:"<fmt:message key="b.de"/>"}],
    			   	          
    			   	data : isc.Tree.create({
    						       	ID:"childCategoryTree",
    					    	   	defaultIsFolder:true,
    					    	   	modelType:"parent", 
    						       	rootValue:treeRootId,
    						       	//isFolderProperty:"isFolder",
    						       	idField:"USERCLASSSEQ",
    						       	parentIdField:"USERCLASSPARENTSEQ",
    						       	autoOpenRoot:true,
    						       	openProperty:"isOpen"
    				   		}),
    				   		
    			    cellContextClick : function (record, rowNum, colNum){
    			    					setContextClickInfo(record, rowNum, colNum);
    			    					return itemTreeMenu.showContextMenu();
    						},
    			    nodeClick : function (viewer, node, recordNum){
    						    	findItems(node);
    						},
    				
    				folderDrop:function (nodes, folder, index, sourceWidget){
                                                    categoryTree.updateData({SUB_OP:"Move",
    										MOVE_MODE:mode,
    										ORG_RECORD:src[0],
    										SRC_SEQ:src[0].USERCLASSSEQ,
    										TAR_SEQ:target.USERCLASSSEQ,
    										TAR_TITLE:title,
    										TAR_DESC:desc});
    						    		return;
    						}
    
    			});

    Question:
    1. how can I solve this problem? would you answer to me?
    2. I use one Datasource to fetchData and updateData moving folder on the Treegride, is this problem?
    would you suggest to me, how can I program in this case?

    thank you for your attention.
    Last edited by patentpia; 7 Jan 2009, 03:10.

    Comment


      #3
      The error message seems pretty straightforward - you did not provide a response when calling send(). "this.dsResponse" appears to be null.

      Comment


        #4
        thank you for your reply. but...

        We did not leave the "this.dsResponse" as null, already there is response to this, please check the provided source code again, we provided this.dsResponse = new DSResponse(), but can not understand why it should appear NULL.

        Code:
        public ActionForward execute(ActionMapping mapping,
        			ActionForm form,
        			HttpServletRequest request,
        			HttpServletResponse response) throws Exception{
        		
        		this.request = request;
        		
        		long tt = System.currentTimeMillis();
        		
        		try {
        			this.seMemberInfo = (MemberSession)request.getSession().getAttribute("sMember");
        	 		if (this.seMemberInfo == null || this.seMemberInfo.getMEMBERSEQ() < 1)
        	 			return mapping.findForward("moveLogin");
        			RPCManager rpc;
        			response.setContentType("text/html; charset=UTF-8");
        			try {
        			    rpc = new RPCManager(request, response, response.getWriter());
        			} catch (ClientMustResubmitException e) { 
        			    return mapping.findForward("fail");
        			}
        
        			for(Iterator i = rpc.getRequests().iterator(); i.hasNext();) {
        
        			    
        			    Object req = i.next();
        			    if(req instanceof RPCRequest) 
        			         throw new Exception("This example expects only DSRequests");
        			    this.dsRequest = (DSRequest)req;
        			        
        			   
        
        			    String dsName = this.dsRequest.getDataSourceName();
        			    if(!"treeDS".equals(dsName)) {
        			        
        			        rpc.send(this.dsRequest, this.dsRequest.execute());
        			        continue;
        			    }
        			    DataSource treeDS = this.dsRequest.getDataSource();
        
        			   
        			    this.dsResponse = new DSResponse();
        			        
        			    
        			    this.dsResponse.setSuccess();
        
        			   
        			    String operation = this.dsRequest.getOperationType();
        			    
        			    if(operation.equals(DataSource.OP_FETCH)) {
        			    	this.fetchCategory();
        			    } else if(operation.equals(DataSource.OP_ADD)) {
        			    	this.addCategory();
        			    } else if(operation.equals(DataSource.OP_UPDATE)) {
        			    	this.updateCategory();
        			    } else if(operation.equals(DataSource.OP_REMOVE)) {
        			    	this.removeCategory();
        			    } else {
        			    	this.dsResponse.setFailure();
        			    	this.dsResponse.setData("Unknown operationType: " + operation);
        			    }
        			   
        			    rpc.send(this.dsRequest, this.dsResponse);
        			        
        			} // for(requests)
        		} catch (Exception exception) {	
        			System.out.println(exception.getMessage());
        			throw exception;			
        		} finally {			
        			if (form != null) form = null;	
        			log.info(" end time : "+(System.currentTimeMillis() - tt));
        		}	 
        		return null;
        	}
        Can you please let us know how you make the folder move function? Your sample source appears to be working fine. Are you using both the fetchData and updateDate action for same time in your sample source code? both actions occure in my source.
        Please suggest.
        Last edited by patentpia; 7 Jan 2009, 18:40.

        Comment


          #5
          The error message your getting on the server happens when you pass a null DSResponse. Use logging to figure out how your code is doing this. Much of your server side code isn't shown so there's no way for anyone to figure out the reason for this error (other than you).

          Your client-side code has several errors as well. Your folderDrop() method references "src" but this is not defined anywhere in the code you've shown. Also, you should not *both* provide a Tree and use autoFetchData(). See the docs for fetchData() - the TreeGrid is creating a ResultTree which simply replaces your Tree instance.

          If you want to pass properties to configure the Tree you would do so via treeGrid.dataProperties, however, some of the properties you are trying to configure on the Tree should actually be set on the DataSource and DataSourceField instead. See the Tree DataBinding overview in the SmartClient Reference, and the docs for the properties it links to.

          Comment

          Working...
          X