Hi, I made a mistake in my last email. The line 1329 is actually within method invoke(Object[] params)
1329 throw new AxisFault( Messages.getMessage("errorInvoking00", "\n" + exp) ); So, the ClassCastException was actually thrown in the try (starting at line 1314) block and caught by the catch block at line 1326. But can anyone tell me where is org.apache.axis.attachments.AttachmentsImpl used and casted in this invoke(Object[] params) method? I was debugging this code in WSAD, and found the params Object array always contains one object of Login. I can't think of anything different by the way we call this invoke() method. Puzzled! The full method: public Object invoke(Object[] params) throws java.rmi.RemoteException { long t0=0, t1=0; if( tlog.isDebugEnabled() ) { t0=System.currentTimeMillis(); } /* First see if we're dealing with Messaging instead of RPC. */ /* If ALL of the params are SOAPBodyElements then we're doing */ /* Messaging, otherwise just fall through to normal RPC processing. */ /********************************************************************/ SOAPEnvelope env = null ; int i ; for ( i = 0 ; params != null && i < params.length ; i++ ) if ( !(params[i] instanceof SOAPBodyElement) ) break ; if ( params != null && params.length > 0 && i == params.length ) { /* ok, we're doing Messaging, so build up the message */ /******************************************************/ isMsg = true ; env = new SOAPEnvelope(msgContext.getSOAPConstants()); if ( !(params[0] instanceof SOAPEnvelope) ) for ( i = 0 ; i < params.length ; i++ ) env.addBodyElement( (SOAPBodyElement) params[i] ); Message msg = new Message( env ); setRequestMessage(msg); invoke(); msg = msgContext.getResponseMessage(); if (msg == null) { if (FAULT_ON_NO_RESPONSE) { throw new AxisFault(Messages.getMessage("nullResponse00")); } else { return null; } } env = msg.getSOAPEnvelope(); return( env.getBodyElements() ); } 1312 if ( operationName == null ) 1313 throw new AxisFault( Messages.getMessage("noOperation00") ); 1314 try { 1315 Object res=this.invoke(operationName.getNamespaceURI(), 1316 operationName.getLocalPart(), params); 1317 if( tlog.isDebugEnabled() ) { 1318 t1=System.currentTimeMillis(); 1319 tlog.debug("axis.Call.invoke: " + (t1-t0) + " " + operationName); 1320 } 1321 return res; 1322 } 1323 catch( AxisFault af) { 1324 throw af; 1325 } 1326 catch( Exception exp ) { 1327 //if ( exp instanceof AxisFault ) throw (AxisFault) exp ; 1328 entLog.info(Messages.getMessage("toAxisFault00"), exp); 1329 throw new AxisFault( Messages.getMessage("errorInvoking00", "\n" + exp) ); 1330 } 1331 } Tony Chen SUN Certified Java 2 Programmer IBM Certified Enterprise Developer - WebSphere V4.0 & V5.0 Canadian Securities Course (CSC) Certification Securities Industry Services, IBM Global Services phone: 416-478-5852 e-mail: [EMAIL PROTECTED] Tony Chen/Toronto/IBM@ IBMCA To axis-user@ws.apache.org 05/20/2005 10:32 cc AM Subject Axis V1.0 - Please respond to java.lang.ClassCastException: axis-user org.apache.axis.attachments.Attachm entsImpl Hi Everyone, This is my first email to axis-user. We are using axis.jar V1.0 in order to access a 3rd-party software. Our system is running fine in production until a few days later, we got the following error: java.lang.ClassCastException: org.apache.axis.attachments.AttachmentsImpl: AxisFault faultCode: {http://xml.apache.org/axis/}Server.generalException faultString: Error invoking operation: java.lang.ClassCastException: org.apache.axis.attachments.AttachmentsImpl faultActor: null faultDetail: stackTrace: AxisFault faultCode: {http://xml.apache.org/axis/}Server.generalException faultString: Error invoking operation: java.lang.ClassCastException: org.apache.axis.attachments.AttachmentsImpl faultActor: null faultDetail: Error invoking operation: java.lang.ClassCastException: org.apache.axis.attachments.AttachmentsImpl at org.apache.axis.client.Call.invoke(Call.java:1329) at com.actuate.schemas.ActuateSoapBindingStub.login(Unknown Source) at com.ibm.sis.util.ActuateHelper.getProxyForUser(Unknown Source) ... I downloaded the source code for Axis v1.0 and the line 1329 of Call.java is "return this.invoke(params);" in method "public Object invoke(QName operationName, Object[] params)" 1324 public Object invoke(QName operationName, Object[] params) 1325 throws java.rmi.RemoteException { 1326 QName origOpName = this.operationName; 1327 this.operationName = operationName; 1328 try { 1329 return this.invoke(params); 1330 } 1331 catch (java.rmi.RemoteException re) { 1332 this.operationName = origOpName; 1333 throw re; 1334 } 1335 catch (RuntimeException re) { 1336 this.operationName = origOpName; 1337 throw re; 1338 } 1339 catch (Error e) { 1340 this.operationName = origOpName; 1341 throw e; 1342 } 1343 } // invoke Can anyone please give me a hand on why this is happening? The interesting thing is everything runs okay in development and test systems. The ClassCastException only happens in production system after it has been running for a few day. To recover from the problem, we have to restart the app server. Best regards, Tony Chen SUN Certified Java 2 Programmer IBM Certified Enterprise Developer - WebSphere V4.0 & V5.0 Canadian Securities Course (CSC) Certification Securities Industry Services, IBM Global Services phone: 416-478-5852 e-mail: [EMAIL PROTECTED]