wood burning stoves 2.0*
The moose likes Web Services and the fly likes generate XML on server side is giving error Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "generate XML on server side is giving error" Watch "generate XML on server side is giving error" New topic
Author

generate XML on server side is giving error

Yogesh Chugh
Greenhorn

Joined: Aug 26, 2003
Posts: 2
Hi list,
I am new to web services. I have a java class as client which is calling another java class on the server.
I am using Eclipse and jBoss 3.2.x with Axis configured.

The client code is ...

//client class

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.utils.Options;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

public class StockQuoteClient {

public static void main(String [] args)
{
try {
Options options = new Options(args);

String endpointURL = options.getURL();
System.out.println(endpointURL);

String textToSend1;
String textToSend2;

args = options.getRemainingArgs();
if ((args == null) || (args.length < 1)) {
textToSend1 = "<nothing>";
textToSend2 = "<nothing>";
} else {
textToSend1 = args[0];
textToSend2 = args[1];
}

System.out.println(textToSend1);
System.out.println(textToSend2);

Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpointURL) );

call.setOperationName( new QName("StockQuoteService","getQuote"));
call.addParameter( "arg1", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType( org.apache.axis.encoding.XMLType.XSD_LONG);
Long ret = (Long)call.invoke(new Object[]{textToSend2});

if(ret.equals(new Long(-1))){
System.out.println("Argument passed is not valid.Pls check!");
}
else{
System.out.println("The corresponding Value is : " + ret);
}


} catch (Exception e) {
System.err.println(e.toString());
}
}
}



and the Server java class is...

//server side java class

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Hashtable;

import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

public class StockQuoteService {

private Hashtable htGlobal = new Hashtable();
private Connection con = null;
private Statement stmt = null;
private ResultSet rs = null;
private String driverClass = "oracle.jdbc.driver.OracleDriver";
private String xmlFilePath = "c:\\test\\test.xml";
privateElement root;
privateElement child1;

public void getData(String sym){

Hashtable ht1 = new Hashtable();
ArrayList record = new ArrayList();
ArrayList recordSet = new ArrayList();

System.out.println("******As string*******" + sym + "***********");
Long id = Long.valueOf(sym);
System.out.println("******As long*******" + id + "***********");

//String str ="SELECT * FROM holdings WHERE CL_ID = '10000'";
StringBuffer str = new StringBuffer("SELECT * FROM holdings WHERE CL_ID=");
//System.out.println("******** test area **********");
//str.append("SELECT * FROM holdings WHERE CL_ID=");
System.out.println("******** test area 1234 **********");
str.append(id);
System.out.println(str);

try {
con = getConnection();
stmt = con.createStatement();
//rs = stmt.executeQuery(str);
rs = stmt.executeQuery(str.toString());

while(rs.next()){
String symbol = rs.getString("SYMBOL");
System.out.println("*********The Symbol is" + symbol + "***********");
float total_cost = rs.getFloat("TOT_COST");
String cost = String.valueOf(total_cost);
System.out.println("*********The cost is" + cost + "***********");
record.add(symbol);
record.add(cost);
ht1.put(sym,record);

generateResponceXml(sym,symbol,cost);
}
setHtGlobal(ht1);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public Long getQuote(String symbol) {

System.out.println(symbol);
getData(symbol);

Hashtable ht2 = new Hashtable();
ht2 = getHtGlobal();
System.out.println("The hashtable after getHtGlobal function is " + ht2);
ArrayList val = (ArrayList)ht2.get(symbol);
System.out.println("ArrayList is "+ val);
String val1 = (String)val.get(1);
System.out.println("2nd value in ArrayList is "+ val1);
if(val1 == null){
val1 = "-1";
}
return new Long(Long.parseLong(val1));
}

/**
* @return
*/
public Hashtable getHtGlobal() {
return htGlobal;
}

/**
* @param hashtable
*/
public void setHtGlobal(Hashtable hashtable) {
htGlobal = hashtable;
System.out.println("The hashtable in setHtGlobal function is " + htGlobal);
}

public Connection getConnection()
throws SQLException
{
try
{
Class.forName(driverClass).newInstance(); /* JDBC driver */
con = DriverManager.getConnection("jdbc racle:thin:@192.168.2.201:1522:gim2usr","gim2usr","gim2usr");
System.out.println("Connection is " + con);
}
catch (ClassNotFoundException e)
{
System.out.println(e.getMessage());
}
catch (SQLException e)
{
System.out.println(e.getMessage());
} catch (InstantiationException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch (IllegalAccessException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
//return the Connection Object
return con;
}

public void generateResponceXml(String id,String symbol, String value)
{
root = new Element("account");
root.setAttribute("id",id);
child1 = new Element("orderlist");
System.out.println("I am in XMLOutput class with path " + xmlFilePath);
try {
fillResponceXml(symbol,value);
Document doc = new Document(root);
// serialize it onto FileOutputStream
XMLOutputter serializer = new XMLOutputter( " ", true);
FileWriter writer = new FileWriter(xmlFilePath);
System.out.println("xml file generated at " + xmlFilePath);
serializer.output(doc,writer);
writer.close();
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
}

public void fillResponceXml(String symb,String valu)
{
root.addContent(child1);
for(int i=0; i<4; i++)
{

Element child2 = new Element("order");
child1.addContent(child2);

for(int j=0; j<1; j++)
{

Element sym = new Element("symbol");
Elementval = new Element("value");
Elementtyp = new Element("type");

sym.setText(symb);
child2.addContent(sym);

val.setText(valu);
child2.addContent(val);

typ.setText("hold");
child2.addContent(typ);

}
}
}

}


so, here if i just comment the line
generateResponceXml(sym,symbol,cost);
in the getData() method, it works fine but if i uncomment the function..it displays error "(500) Internal server Error" on the client side.
Here I am posting the error coming on server side...

12:35:53,359 ERROR [Engine] StandardWrapperValve[AxisServlet]: Servlet.service()
for servlet AxisServlet threw exception
javax.servlet.ServletException: Servlet execution threw an exception
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.jboss.web.catalina.security.JBossSecurityMgrRealm.invoke(JBossSec
urityMgrRealm.java:229)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
.java:246)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.jboss.web.catalina.statistics.ContainerStatsValve.invoke(Containe
rStatsValve.java:75)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
509)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:22
3)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:619)
at java.lang.Thread.run(Thread.java:536)
12:35:53,375 ERROR [Engine] ----- Root Cause -----
java.lang.VerifyError: (class: com/ebw/crg/stock/StockQuoteService, method: fill
ResponceXml signature: (Ljava/lang/String;Ljava/lang/String V) Incompatible arg
ument to function
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:217)
at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:187)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:171)
at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:154)
at org.apache.axis.utils.cache.ClassCache.lookup(ClassCache.java:123)
at org.apache.axis.providers.java.JavaProvider.getServiceClass(JavaProvi
der.java:582)
at org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvi
der.java:615)
at org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(S
OAPService.java:342)
at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDServi
ce.java:507)
at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSD
DDeployableItem.java:310)
at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDe
ployableItem.java:296)
at org.apache.axis.deployment.wsdd.WSDDDeployment.getServiceByNamespaceU
RI(WSDDDeployment.java:496)
at org.apache.axis.configuration.FileProvider.getServiceByNamespaceURI(F
ileProvider.java:272)
at org.apache.axis.MessageContext.getPossibleOperationsByQName(MessageCo
ntext.java:247)
at org.apache.axis.message.BodyBuilder.onStartChild(BodyBuilder.java:175
)
at org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:963)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXP
arser.java:434)
at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNames
paceBinder.java:832)
at org.apache.xerces.impl.XMLNamespaceBinder.startElement(XMLNamespaceBi
nder.java:568)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidat
or.java:796)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElemen
t(XMLDocumentFragmentScannerImpl.java:752)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1454)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XM
LDocumentFragmentScannerImpl.java:333)
at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardP
arserConfiguration.java:529)
at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardP
arserConfiguration.java:585)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.j
ava:1148)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializa
tionContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:304)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:85
4)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.jboss.web.catalina.security.JBossSecurityMgrRealm.invoke(JBossSec
urityMgrRealm.java:229)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
.java:246)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.jboss.web.catalina.statistics.ContainerStatsValve.invoke(Containe
rStatsValve.java:75)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
509)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:22
3)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:619)
at java.lang.Thread.run(Thread.java:536)

the deploy.wsdd file is as ...

//deploy.wsdd
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<service name="StockQuoteService" provider="java:RPC">
<parameter name="className" value="com.ebw.crg.stock.StockQuoteService"/>
<parameter name="allowedMethods" value="*"/>
</service>

</deployment>

Am I missing any jar file or is there anything else?
pls help as soon as possible. i am approaching deadline.
thansk in advance.

-yogesh

PS: pls, dont go for the debugging comments. Its all for my testing.
 
wood burning stoves
 
subject: generate XML on server side is giving error
 
Similar Threads
Servlet.service() Error
Validator framework is not working
java.sql.SQLException: Io exception: Software caused connection abort: recv fail
java.sql.SQLException: Io exception: Software caused connection abort: recv fail
Exception XMLSerializer