- Problema no WebService com Axis -

Estou com seguinte problema:

Montei um webservice com tomcat5.5 e axis1.4, no entanto esse webservice so esta retornando tipos primitivos(string, int,etc…).
Quando faço a classe que esta no webservice retornar o id de algum produto, por exemplo, ela funciona normal… O problema está em retornar a classe inteira, porque pelo oq entendi o axis nao esta conseguindo converter para XML…
Entao vai minha duvida: para retornar as classes como xml, preciso fazer algo diferente? ou é só mandar retornar a classe e o axis se encarrega de converter para XML, como estou fazendo agora…

Segue o metodo q esta dentro da Classe no axis…

[code]
public ClsProduto_Geral[] getProdutos_HP(String strnome) throws SQLException
{

    ArrayList ProdutosList = new ArrayList();
    
    String strselect = "select * from produtos_superhp where nome like '%"+strnome+"%'";
    Connection connection = null; 
    try 
    {     
       // Criando a conexão com o Banco de Dados                  
        connection = (Connection) DriverManager.getConnection(url, username, password);     
        //Criando um objeto Statement para enviar requisições SQL para o Banco de Dados         
        Statement stmt = (Statement) connection.createStatement();     
        ResultSet rs = stmt.executeQuery(strselect);              
        
        while(rs.next())
        {
            //cria um objeto temporario da classe e insere o arraylist
            ClsProduto_Geral temp = new ClsProduto_Geral();                
            temp.setStrID(String.valueOf(rs.getInt(1)));    
            temp.setStrNome(rs.getString(2));
            temp.setStrPreco_unit(rs.getString(3));
            ProdutosList.add(temp);
        }               
        
    }       
    catch (SQLException e)
    {
       System.out.println("Problemas com o BD"+e);
    }        
    finally{connection.close();}
        
    ClsProduto_Geral[] produtosresult = new ClsProduto_Geral[ProdutosList.size()];        
    
    for(int i=0;i<=0;i++)//converte o arraylist para um array de objetos da classe
    {           
        //foi ultilizado um for() porque o toArray nao funciona quando o arraylist contem classes
        produtosresult[i] = (ClsProduto_Geral) ProdutosList.get(i);
    }
    
    return produtosresult;                              
 //PS: aqui ele retorna um array de classes, no entanto ja tentei retornar so uma classe e apresenta o mesmo problema...

}[/code]

E segue o Erro quando tento executar:

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SAXParseException: Premature end of file.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at frmBase.btnAcessWebServiceActionPerformed(frmBase.java:145)
at frmBase.access$100(frmBase.java:23)
at frmBase$2.actionPerformed(frmBase.java:61)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

    {http://xml.apache.org/axis/}hostname:notebook_bruno

org.xml.sax.SAXParseException: Premature end of file.
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at frmBase.btnAcessWebServiceActionPerformed(frmBase.java:145)
at frmBase.access$100(frmBase.java:23)
at frmBase$2.actionPerformed(frmBase.java:61)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
… 36 more

Pequena correçao:

Linha35: for(int i=0;i<=ProdutosList.size()-1;i++)

Na hora q postei eu estava testando uma coisa e me esqueci de voltar ao normal, mas o erro continua exatamente o mesmo…

Olá, mineirobruno

nao sei se isto é correto, mas é que estou com um problema semelhante ao seu (pelo menos eu acho), só que mais simples…

Criei um webservice que faz um cadastro num bd e isso está funcionando, porém quando tento utilizar um metodo qualquer para retornar um campo (do objeto), dá erro.

± assim:
obj.incluir(“XXXX”); // funciona
String xxxx = obj.gerCampo(); // ERRO (Este metodo está publicado direitinho)

Nao sei se fui claro e se eu posso postar (atropelar) minha dúvida…valeu!

Já entendi o que se passa: coisa de principiante…

na verdade, eu nao ainda nao sabia que esse webservice é ‘stateless’, por isso que eu nao consigo chamar um segundo método…