You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by Francesco Dipalo <ss...@email.it> on 2005/01/17 12:18:46 UTC

problem in a web service

 I have written this .dd file:
<isd:service 
   xmlns:isd="http://xml.apache.org/xml-soap/deployment"
   id="urn:Composizione">
   
   <isd:provider type="java"
         scope="Application"
         methods="compone">
     <isd:java class="service_controller"
         static="false"/>
   </isd:provider>
   <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>
   <isd:mappings>
   </isd:mappings>    
</isd:service>

this client  ( in %SOAP-HOME%\WEB-INF\classes)

import java.net.*;
import java.util.*;
import java.io.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;

public class Client {
   static boolean corretto1=false;
   static boolean corretto2=false;
   
   static boolean Copy(String path, String filename) throws Exception {
      boolean flag=false;
      File pathTo = new File(path + filename); 
      File pathFrom = new File(filename);
      try { 
         FileInputStream inputFile = new FileInputStream(pathFrom); 
         int bytes = inputFile.available(); 
         pathTo.createNewFile(); 
         FileOutputStream outputFile = new FileOutputStream(pathTo); 
         int readBytes = 0; 
         while (readBytes < bytes) {   
            outputFile.write(inputFile.read()); 
            readBytes++; 
         } 
      inputFile.close(); 
      outputFile.close();
      flag=true; 
      } catch (FileNotFoundException e) { 
        flag=false;
        System.out.println("Il file: " + pathFrom.toString() + ", non esiste!"); 
        e.printStackTrace(); 
      } 
      return flag;
   }

   public static void main(String[] args) throws Exception {
      String c_Nomefile="";
      String c_Nomefile1="";
      String c_Nomefile2="";
      String CATALINA_HOME=System.getProperty("catalina.home"); 
      String [] lista = new File(".").list();
      URL url = new URL("http://localhost:8080/soap/servlet/rpcrouter"); 
      System.out.println("ELENCO SERVIZI:");
      for(int cx=0; cx<lista.length; cx++)
         if ( new File(lista[cx]).isFile() )                           //verifica se è file
            if ( lista[cx].toLowerCase().lastIndexOf(".owl") >= 0)     //e con estensione .owl
               System.out.println((" * " + lista[cx]+"             ").substring(0,20));
      try {
         do {
            System.out.print("Servizio principale (digitare anche l'estensione): ");
            BufferedReader in1= new BufferedReader(new InputStreamReader(System.in));
            c_Nomefile1 = in1.readLine();
         } while (!(c_Nomefile1.endsWith(".owl")));
         do {
            System.out.print("Servizio da comporre (digitare anche l'estensione): ");
            BufferedReader in2= new BufferedReader(new InputStreamReader(System.in));
            c_Nomefile2 = in2.readLine();
         } while (!(c_Nomefile1.endsWith(".owl")));
         c_Nomefile = c_Nomefile1 + c_Nomefile2; // crea nome file composto
      } catch (Exception e) { e.printStackTrace(); }
      c_Nomefile = c_Nomefile1.substring(0,c_Nomefile1.indexOf('.')) + c_Nomefile2; 
      corretto1=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile1);
      corretto2=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile2);
      if ((corretto1==true) && (corretto2==true)) {
         Call call = new Call();
         call.setTargetObjectURI("urn:Composizione");   
         call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
         Vector params = new Vector();
         params.addElement(new Parameter("file_1", String.class, c_Nomefile1, null));
         params.addElement(new Parameter("file_2", String.class, c_Nomefile2, null));
         params.addElement(new Parameter("file_composto", String.class, c_Nomefile, null));
         params.addElement(new Parameter("path_output", String.class, CATALINA_HOME+"\\webapps\\soap\\WEB-INF\\classes\\", null));
         
         call.setParams(params);
         try {
     call.setMethodName("compone");   
            Response resp = call.invoke(url, "");
            if (resp.generatedFault()) {
               Fault fault = resp.getFault();
               System.err.println("Generated fault: " + fault);
            } else {
               Parameter ret = resp.getReturnValue();
               Object value = ret.getValue();
               switch (value.hashCode()) {
                  case 0: System.out.println("I due file non sono componibili"); break;
                  case 1: System.out.println("I due file sono stati composti nel file " +c_Nomefile); break;
                  case -1: System.out.println("Utility interrotta per errori"); break;
               }
            }
         } catch (SOAPException e) {
            System.err.println("Caught SOAPException (" +e.getFaultCode() + "): " +e.getMessage());
         }
      } 
      try { 
         System.out.print("\nPremere INVIO per terminare...\n");
         System.in.read();
      } catch(Exception e) {}
   }
}

this service ( in %SOAP-HOME%\WEB-INF\classes)

import java.io.*;
//import xml_pars;

public class service_controller {
 public static int c_Comp;                     //esito della composizione (1=ok, 0=non composto, -1=errore tag)
 public static String tempor;                  //final static String fileTMP = "tmp.owl";

 private static String c_Tabella;
 private static xml_pars owl = new xml_pars();  //classe parsing .XML
 private static String linea;
 private static boolean corretto;
 
 //---------------------//
 //     COMPOSIZIONE    //      MAIN
 //---------------------//
 //Costruttori della classe:  //si possono togliere
         public service_controller () { }
         public service_controller (String file_1, String file_2, String file_composto, String path_output) {
                compone(file_1, file_2, file_composto, path_output);
         }
 public static String get_output() { if (c_Comp <= 0) tempor = ""; return tempor; } //metodo di controllo
 public static int compone0(String file_1, String file_2, String file_composto, String path_output) {
       metodi_xml(file_2); return (c_Comp = c_ProceduraTag(file_1));
 }
 public static int compone(String file_1, String file_2, String file_composto, String path_output) {
       if (compone0(file_1, file_2, file_composto, path_output) <= 0) {

              System.out.println("\nI due servizi non sono tra loro componibili.");
              waitkey();

       } else {

              System.out.println("\nFILE COMPOSTO:\n");
              int cx = 0; owl.put_parsing(get_output());
              do {    if ( ((cx++)%16) == 0) waitkey();
                      System.out.print(owl.ctags());
              } while (owl.nido >= 0 || cx<3);

              if (path_output.length() > 0) owl.newdir(path_output);       //se non c'S crea la cartella
              owl.put_parsing(get_output());
              owl.save_parsing(path_output + "/" + file_composto); //c_EliminaFile(); fare in modo che in path_output compaia il percorso fino a soap
              //if (file_1.length() > 0) { owl.load_parsing(file_1); owl.save_parsing(path_output + "/" + file_1); }
              //if (file_2.length() > 0) { owl.load_parsing(file_2); owl.save_parsing(path_output + "/" + file_2); }

       }
      return c_Comp;
 }


 //---------------------//
 //     METODI XML      //      PROCEDURE UTILITY
 //---------------------//
// Carica un file.owl e lo compila in una tabella di: tipo, nome del tag + \n
 public static void metodi_xml (String file) {
       System.out.print("Apro il file "+file+" ... ");
       if (! (corretto = owl.load_parsing(file)) )
              System.out.println("Errore!");
       else  {  // crea tabella
              System.out.println("Ok!\nCompilo la tabella...");
              owl.tag(2);          //salta header (tag <?> e tag Ontology)
              c_Tabella = tempor = "";
              while(true) {
                     c_AnalisiTag(owl.tags()); if (owl.nido < 0) break;
                     if (linea.length() > 1) c_Tabella += linea + "\n";
                     tempor += owl.tag_root(owl.xml_id);
              }
       }
 }
// Compila il singolo tag (tipo, nome del tag + \n)
 public static int c_AnalisiTag(String tag) {           // ritorna tipo tag e linea       
       linea = ".";       
       if (owl.si_tag(tag,"<owls:") > 0) {
              linea = owl.search_true(tag, "owls:Class ", "C") +
                      owl.search_true(tag, "owls:ObjectProperty ", "P") +
                      //owl.search_true(tag, "owls:Ontology ", "O") +
                      linea;
              if (linea.length() == 1) {
                     System.out.println("Tag sconosciuto: " + tag);
                     corretto = false; };
              linea += owl.search_tag(tag, "name=");    //"owls:name"
       };
       return linea.charAt(0);
 }
// Esegue la composizione del file con il file passato in metodi_xml
 public static int c_ProceduraTag(String file) {        // esegue utility
       String temp, tag; int comp = 0; temp = tag = "";
       System.out.print("Apro il file "+file+" ... ");
       if (! owl.load_parsing(file) ) {
              System.out.println("Errore!"); corretto = false; };
       if (corretto) {
              System.out.println("Ok!\nAvvio utility...");
              owl.tag(2);   //salta header (tag <?> e tag Ontology)
              do {   tag = owl.tags();    //o tag = owl.tag(0);
                     int tipo = c_AnalisiTag(tag);
                     if (linea.length() > 1) {
                        tag = owl.tag_root(owl.xml_id);
                        if (c_Tabella.indexOf(linea) < 0) { temp += tag; }
                          else {  if (tipo=='C') comp = 1;  //...
                        }
                    }
              } while (owl.nido >= 0);
       }
       if (!corretto) { System.out.println("Utility interrotta per errori."); comp = -1; };
       owl.reset(); //aggiunge intestazione padre
       tempor = owl.tags() + owl.tags() + tempor + temp + tag;
       return comp;
 }


//---------------------//
//      OUTPUT         //       PROCEDURE OUTPUT
//---------------------//
 public static void waitkey() {         // Attende il tasto invio
  try { System.out.print("\nPremere INVIO per proseguire...\n");
        System.in.read(); } catch(Exception e) {}
 }



 //--------------
 // MAIN DI PROVA
 //--------------
 //public static void main(String []argv) {
 //       compone("PROVA1.OWL", "PROVA2.OWL", "prova1prova2.owl", ".");
 //}       

}

but I received this exception (the xml_pars.class is in %SOAP-HOME%\WEB-INF\classes)

Generated fault: [Attributes={}] [faultCode=SOAP-ENV:Server] [faultString=Except
ion from service object: null] [faultActorURI=/soap/servlet/rpcrouter] [DetailEn
tries=
[(0)=<stackTrace>java.lang.NullPointerException
        at xml_pars.tag(Unknown Source)
        at xml_pars.reset(Unknown Source)
        at service_controller.c_ProceduraTag(service_controller.java:104)
        at service_controller.compone0(service_controller.java:23)
        at service_controller.compone(service_controller.java:26)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.soap.server.RPCRouter.invoke(RPCRouter.java:146)
        at org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java
:129)
        at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.
java:354)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        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.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:
2422)
        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:163)
        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:19
9)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:828)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:700)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:584)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
        at java.lang.Thread.run(Thread.java:534)
</stackTrace>]
] [FaultEntries=]

Why? Can anyone help me?
TIA
TIA
 
 
 --
 Email.it, the professional e-mail, gratis per te: http://www.email.it/f
 
 Sponsor:
 Biscotti perfetti? Metti la pasta dentro allo Sparabiscotti e...click click... biscotti pronti per essere infornati!
 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid'45&d-1

Exception from service object: org.apache.xerces.framework.XMLParser

Posted by Tao Jiang <ji...@cn.ibm.com>.
Hi, all
 
   I found when some method runs well standalone, while runs inormally 
with the following exception when 
running as a soap server side in WAS 5.1 , how come this ?  I guess it 
maybe the xerces.jar problem, 
i removed the xerces.jar in my WEB-INF/lib, and problem can not be solved. 


com.ibm.tct.api.exception.ServerException: Exception from service object: 
org.apache.xerces.framework.XMLParser
        at 
com.ibm.tct.api.client.TCTConnection.callService(TCTConnection.java:341)
        at 
com.ibm.tct.api.client.business.TCTSystem.logOn(TCTSystem.java:893)
        at com.ibm.tct.api.client.test.TestLogon.run(TestLogon.java:56)

Any help is appreciated . thanks. 

===============
Best regards.
Truman, Jiang tao
IBM Shanghai Globalization Laboratory
China Software Development Laboratory,  Shanghai
Tel: (86-21)63262288x5892 Email: jiangtao@cn.ibm.com
10/F. Shui On Plaza, 333 Huai Hai Zhong Road, 200021, Shanghai, China
Welcome to visit our homepage: http://g11n.cn.ibm.com/sgl

Question how to fill Report directly

Posted by Malte Kempff <Ke...@medicalcolumbus.de>.
Hello everyone,

I would like to fill my succsessly compiled Report directly. Therefore I put
the compiled jasper-file directly in the root into my jar-file and used this
method

            JasperPrint jp =
JasperFillManager.fillReport("FallakteHBReport.jasper",
                                                                            
fallAkte,
                                                                            
new JRTableModelDataSource(m_tModel));

But I am getting a File not found Exception like this below
What I am doing wrong and what do I need to do for a Reportfilling using the
method above?

java.io.FileNotFoundException: FallakteHBReport.jasper

 at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:117)

 at
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.j
ava:291)

 at
de.mc.etnbestterm.gui.FallAktenResumeePanel.setReport(FallAktenResumeePanel.
java:102)

 at
de.mc.etnbestterm.gui.FallDokuPanel.m_tabPane_stateChanged(FallDokuPanel.jav
a:677)

 at de.mc.etnbestterm.gui.FallDokuPanel.access$800(FallDokuPanel.java:33)

 at
de.mc.etnbestterm.gui.FallDokuPanel$9.stateChanged(FallDokuPanel.java:245)

 at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:287)

 at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:219)

 at
javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelect
ionModel.java:116)

 at
javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelect
ionModel.java:50)

 at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:468)

 at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:461)

 at
javax.swing.plaf.basic.BasicTabbedPaneUI$MouseHandler.mousePressed(BasicTabb
edPaneUI.java:3060)

 at java.awt.Component.processMouseEvent(Component.java:5097)

 at java.awt.Component.processEvent(Component.java:4897)

 at java.awt.Container.processEvent(Container.java:1569)

 at java.awt.Component.dispatchEventImpl(Component.java:3615)

 at java.awt.Container.dispatchEventImpl(Container.java:1627)

 at java.awt.Component.dispatchEvent(Component.java:3477)

 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3195)

 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

 at java.awt.Container.dispatchEventImpl(Container.java:1613)

 at java.awt.Window.dispatchEventImpl(Window.java:1606)

 at java.awt.Component.dispatchEvent(Component.java:3477)

 at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

 at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:201)

 at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:151)

 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

 at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)


NESTED BY :

java.io.FileNotFoundException: FallakteHBReport.jasper

 at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:117)

 at
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.j
ava:291)

 at
de.mc.etnbestterm.gui.FallAktenResumeePanel.setReport(FallAktenResumeePanel.
java:102)

 at
de.mc.etnbestterm.gui.FallDokuPanel.m_tabPane_stateChanged(FallDokuPanel.jav
a:677)

 at de.mc.etnbestterm.gui.FallDokuPanel.access$800(FallDokuPanel.java:33)

 at
de.mc.etnbestterm.gui.FallDokuPanel$9.stateChanged(FallDokuPanel.java:245)

 at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:287)

 at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:219)

 at
javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelect
ionModel.java:116)

 at
javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelect
ionModel.java:50)

 at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:468)

 at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:461)

 at
javax.swing.plaf.basic.BasicTabbedPaneUI$MouseHandler.mousePressed(BasicTabb
edPaneUI.java:3060)

 at java.awt.Component.processMouseEvent(Component.java:5097)

 at java.awt.Component.processEvent(Component.java:4897)

 at java.awt.Container.processEvent(Container.java:1569)

 at java.awt.Component.dispatchEventImpl(Component.java:3615)

 at java.awt.Container.dispatchEventImpl(Container.java:1627)

 at java.awt.Component.dispatchEvent(Component.java:3477)

 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3195)

 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

 at java.awt.Container.dispatchEventImpl(Container.java:1613)

 at java.awt.Window.dispatchEventImpl(Window.java:1606)

 at java.awt.Component.dispatchEvent(Component.java:3477)

 at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

 at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:201)

 at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:151)

 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

 at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)


NESTED BY :

net.sf.jasperreports.engine.JRException: FallakteHBReport.jasper

 at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:117)

 at
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.j
ava:291)

 at
de.mc.etnbestterm.gui.FallAktenResumeePanel.setReport(FallAktenResumeePanel.
java:102)

 at
de.mc.etnbestterm.gui.FallDokuPanel.m_tabPane_stateChanged(FallDokuPanel.jav
a:677)

 at de.mc.etnbestterm.gui.FallDokuPanel.access$800(FallDokuPanel.java:33)

 at
de.mc.etnbestterm.gui.FallDokuPanel$9.stateChanged(FallDokuPanel.java:245)

 at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:287)

 at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:219)

 at
javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelect
ionModel.java:116)

 at
javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelect
ionModel.java:50)

 at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:468)

 at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:461)

 at
javax.swing.plaf.basic.BasicTabbedPaneUI$MouseHandler.mousePressed(BasicTabb
edPaneUI.java:3060)

 at java.awt.Component.processMouseEvent(Component.java:5097)

 at java.awt.Component.processEvent(Component.java:4897)

 at java.awt.Container.processEvent(Container.java:1569)

 at java.awt.Component.dispatchEventImpl(Component.java:3615)

 at java.awt.Container.dispatchEventImpl(Container.java:1627)

 at java.awt.Component.dispatchEvent(Component.java:3477)

 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3195)

 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

 at java.awt.Container.dispatchEventImpl(Container.java:1613)

 at java.awt.Window.dispatchEventImpl(Window.java:1606)

 at java.awt.Component.dispatchEvent(Component.java:3477)

 at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

 at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:201)

 at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:151)

 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

 at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Caused by: java.io.FileNotFoundException: FallakteHBReport.jasper

 ... 31 more

thanks a lot in advance

Malte



____________
Virus checked by G DATA AntiVirusKit
Version: AVK 15.0.2403 from 12.01.2005
Virus news: www.antiviruslab.com

Re: problem in a web service

Posted by Francesco Dipalo <ss...@email.it>.
I don't understand what you have said. This is xml_pars.java

import java.awt.*;

public class xml_pars {

public String xml_string; int xml_id;

private int nido, apici, xindex;

final void start_parsing(String file_xml) {
 xindex=nido=apici=0; xml_id=1; xml_string = ""; //caricafile(file_xml);
};

static final String api_tag(String stag, int ind) { int ax=0, bx=0;
 try { while((ind--)>=0) {
       do { if(ax>=stag.length())break; } while(stag.charAt(ax++)!=34);
       ax=bx|((bx=ax)&0); }; bx--; } catch(Exception e){};
 return stag.substring(ax,bx);
};
static final int si_tag(String stag, String searchtag) { int ax=0;
 do { } while(ax < 32 && api_tag(stag,ax++).indexOf(searchtag) < 0 );
 if(ax>=32)ax=0; return ax;
};
static final String search_true(String stag, String searchtag, String strue) {
 int ax=si_tag(stag, searchtag);
 if(ax>0) { if(strue==null)strue=api_tag(stag,ax+1); return strue; };
 return "";
};
static final String search_tag(String stag, String searchtag) {
 return search_true(stag, searchtag, null); };

//String final parsing_tag(String stag) {
// int ax=0; String temp=search_true(stag,"owls:Class","Class = ");
// if(si_tag(stag,"owls:ObjectProperty")>0) temp="Property = ";
// return (temp+search_tag(stag,"owls:name"));
//};

final String tag(int id_search) {
 int ah, al = 0, xmlstart = xindex, xmlstop = xml_string.length();
 if (xmlstart>0) al=xml_string.charAt(xmlstart-1);
 while( xmlstart < xmlstop ) {
       ah=al; if( (al=(xml_string.charAt(xmlstart++)&255)) == 34)apici^=1;
       if(apici==0) {
              if(al=='<') { nido++; xml_id++; };
              if(al=='>') { if(ah=='/')nido--;
                     if(id_search==0 || id_search==xml_id)break; };
              if(al=='/' && ah=='<') { if((--nido)==0)xml_id+=16384; };
       }
 }; return xml_string.substring(xindex, (xindex=xmlstart));
}

}

TIA
  ----- Original Message ----- 
  From: Martin Gainty 
  To: soap-user@ws.apache.org 
  Sent: Tuesday, January 18, 2005 12:53 AM
  Subject: Re: problem in a web service


  Dont mean to sound like a broken record but
  what is happening in xml_pars?

  Martin
    ----- Original Message ----- 
    From: Francesco Dipalo 
    To: soap-user@ws.apache.org 
    Sent: Monday, January 17, 2005 2:11 PM
    Subject: Re: problem in a web service


    I use only a deployment descriptor file
    TIA
      ----- Original Message ----- 
      From: Martin Gainty 
      To: soap-user@ws.apache.org 
      Sent: Monday, January 17, 2005 3:15 PM
      Subject: Re: problem in a web service


      Francesco:

      Can we see the source code for xml_pars
      Also please provide the wsdl you are using

      Molte Grazie,

      Martin-
      001-617-852-7822
        ----- Original Message ----- 
        From: Francesco Dipalo 
        To: soap-user@ws.apache.org 
        Sent: Monday, January 17, 2005 6:18 AM
        Subject: problem in a web service


         I have written this .dd file: 
        <isd:service 
           xmlns:isd="http://xml.apache.org/xml-soap/deployment"
           id="urn:Composizione">
           
           <isd:provider type="java"
                 scope="Application"
                 methods="compone">
             <isd:java class="service_controller"
                 static="false"/>
           </isd:provider>
           <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>
           <isd:mappings>
           </isd:mappings>    
        </isd:service>

        this client  ( in %SOAP-HOME%\WEB-INF\classes)

        import java.net.*;
        import java.util.*;
        import java.io.*;
        import org.apache.soap.*;
        import org.apache.soap.rpc.*;

        public class Client {
           static boolean corretto1=false;
           static boolean corretto2=false;
           
           static boolean Copy(String path, String filename) throws Exception {
              boolean flag=false;
              File pathTo = new File(path + filename); 
              File pathFrom = new File(filename);
              try { 
                 FileInputStream inputFile = new FileInputStream(pathFrom); 
                 int bytes = inputFile.available(); 
                 pathTo.createNewFile(); 
                 FileOutputStream outputFile = new FileOutputStream(pathTo); 
                 int readBytes = 0; 
                 while (readBytes < bytes) {   
                    outputFile.write(inputFile.read()); 
                    readBytes++; 
                 } 
              inputFile.close(); 
              outputFile.close();
              flag=true; 
              } catch (FileNotFoundException e) { 
                flag=false;
                System.out.println("Il file: " + pathFrom.toString() + ", non esiste!"); 
                e.printStackTrace(); 
              } 
              return flag;
           }

           public static void main(String[] args) throws Exception {
              String c_Nomefile="";
              String c_Nomefile1="";
              String c_Nomefile2="";
              String CATALINA_HOME=System.getProperty("catalina.home"); 
              String [] lista = new File(".").list();
              URL url = new URL("http://localhost:8080/soap/servlet/rpcrouter"); 
              System.out.println("ELENCO SERVIZI:");
              for(int cx=0; cx<lista.length; cx++)
                 if ( new File(lista[cx]).isFile() )                           //verifica se è file
                    if ( lista[cx].toLowerCase().lastIndexOf(".owl") >= 0)     //e con estensione owl
                       System.out.println((" * " + lista[cx]+"             ").substring(0,20));
              try {
                 do {
                    System.out.print("Servizio principale (digitare anche l'estensione): ");
                    BufferedReader in1= new BufferedReader(new InputStreamReader(System.in));
                    c_Nomefile1 = in1.readLine();
                 } while (!(c_Nomefile1.endsWith(".owl")));
                 do {
                    System.out.print("Servizio da comporre (digitare anche l'estensione): ");
                    BufferedReader in2= new BufferedReader(new InputStreamReader(System.in));
                    c_Nomefile2 = in2.readLine();
                 } while (!(c_Nomefile1.endsWith(".owl")));
                 c_Nomefile = c_Nomefile1 + c_Nomefile2; // crea nome file composto
              } catch (Exception e) { e.printStackTrace(); }
              c_Nomefile = c_Nomefile1.substring(0,c_Nomefile1.indexOf('.')) + c_Nomefile2; 
              corretto1=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile1);
              corretto2=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile2);
              if ((corretto1==true) && (corretto2==true)) {
                 Call call = new Call();
                 call.setTargetObjectURI("urn:Composizione");   
                 call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
                 Vector params = new Vector();
                 params.addElement(new Parameter("file_1", String.class, c_Nomefile1, null));
                 params.addElement(new Parameter("file_2", String.class, c_Nomefile2, null));
                 params.addElement(new Parameter("file_composto", String.class, c_Nomefile, null));
                 params.addElement(new Parameter("path_output", String.class, CATALINA_HOME+"\\webapps\\soap\\WEB-INF\\classes\\", null));
                 
                 call.setParams(params);
                 try {
             call.setMethodName("compone");   
                    Response resp = call.invoke(url, "");
                    if (resp.generatedFault()) {
                       Fault fault = resp.getFault();
                       System.err.println("Generated fault: " + fault);
                    } else {
                       Parameter ret = resp.getReturnValue();
                       Object value = ret.getValue();
                       switch (value.hashCode()) {
                          case 0: System.out.println("I due file non sono componibili"); break;
                          case 1: System.out.println("I due file sono stati composti nel file " +c_Nomefile); break;
                          case -1: System.out.println("Utility interrotta per errori"); break;
                       }
                    }
                 } catch (SOAPException e) {
                    System.err.println("Caught SOAPException (" +e.getFaultCode() + "): " +e.getMessage());
                 }
              } 
              try { 
                 System.out.print("\nPremere INVIO per terminare...\n");
                 System.in.read();
              } catch(Exception e) {}
           }
        }

        this service ( in %SOAP-HOME%\WEB-INF\classes)

        import java.io.*;
        //import xml_pars;

        public class service_controller {
         public static int c_Comp;                     //esito della composizione (1=ok, 0=non composto, -1=errore tag)
         public static String tempor;                  //final static String fileTMP = "tmp.owl";

         private static String c_Tabella;
         private static xml_pars owl = new xml_pars();  //classe parsing .XML
         private static String linea;
         private static boolean corretto;
         
         //---------------------//
         //     COMPOSIZIONE    //      MAIN
         //---------------------//
         //Costruttori della classe:  //si possono togliere
                 public service_controller () { }
                 public service_controller (String file_1, String file_2, String file_composto, String path_output) {
                        compone(file_1, file_2, file_composto, path_output);
                 }
         public static String get_output() { if (c_Comp <= 0) tempor = ""; return tempor; } //metodo di controllo
         public static int compone0(String file_1, String file_2, String file_composto, String path_output) {
               metodi_xml(file_2); return (c_Comp = c_ProceduraTag(file_1));
         }
         public static int compone(String file_1, String file_2, String file_composto, String path_output) {
               if (compone0(file_1, file_2, file_composto, path_output) <= 0) {

                      System.out.println("\nI due servizi non sono tra loro componibili.");
                      waitkey();

               } else {

                      System.out.println("\nFILE COMPOSTO:\n");
                      int cx = 0; owl.put_parsing(get_output());
                      do {    if ( ((cx++)%16) == 0) waitkey();
                              System.out.print(owl.ctags());
                      } while (owl.nido >= 0 || cx<3);

                      if (path_output.length() > 0) owl.newdir(path_output);       //se non c'S crea la cartella
                      owl.put_parsing(get_output());
                      owl.save_parsing(path_output + "/" + file_composto); //c_EliminaFile(); fare in modo che in path_output compaia il percorso fino a soap
                      //if (file_1.length() > 0) { owl.load_parsing(file_1); owl.save_parsing(path_output + "/" + file_1); }
                      //if (file_2.length() > 0) { owl.load_parsing(file_2); owl.save_parsing(path_output + "/" + file_2); }

               }
              return c_Comp;
         }


         //---------------------//
         //     METODI XML      //      PROCEDURE UTILITY
         //---------------------//
        // Carica un file.owl e lo compila in una tabella di: tipo, nome del tag + \n
         public static void metodi_xml (String file) {
               System.out.print("Apro il file "+file+" ... ");
               if (! (corretto = owl.load_parsing(file)) )
                      System.out.println("Errore!");
               else  {  // crea tabella
                      System.out.println("Ok!\nCompilo la tabella...");
                      owl.tag(2);          //salta header (tag <?> e tag Ontology)
                      c_Tabella = tempor = "";
                      while(true) {
                             c_AnalisiTag(owl.tags()); if (owl.nido < 0) break;
                             if (linea.length() > 1) c_Tabella += linea + "\n";
                             tempor += owl.tag_root(owl.xml_id);
                      }
               }
         }
        // Compila il singolo tag (tipo, nome del tag + \n)
         public static int c_AnalisiTag(String tag) {           // ritorna tipo tag e linea       
               linea = ".";       
               if (owl.si_tag(tag,"<owls:") > 0) {
                      linea = owl.search_true(tag, "owls:Class ", "C") +
                              owl.search_true(tag, "owls:ObjectProperty ", "P") +
                              //owl.search_true(tag, "owls:Ontology ", "O") +
                              linea;
                      if (linea.length() == 1) {
                             System.out.println("Tag sconosciuto: " + tag);
                             corretto = false; };
                      linea += owl.search_tag(tag, "name=");    //"owls:name"
               };
               return linea.charAt(0);
         }
        // Esegue la composizione del file con il file passato in metodi_xml
         public static int c_ProceduraTag(String file) {        // esegue utility
               String temp, tag; int comp = 0; temp = tag = "";
               System.out.print("Apro il file "+file+" ... ");
               if (! owl.load_parsing(file) ) {
                      System.out.println("Errore!"); corretto = false; };
               if (corretto) {
                      System.out.println("Ok!\nAvvio utility...");
                      owl.tag(2);   //salta header (tag <?> e tag Ontology)
                      do {   tag = owl.tags();    //o tag = owl.tag(0);
                             int tipo = c_AnalisiTag(tag);
                             if (linea.length() > 1) {
                                tag = owl.tag_root(owl.xml_id);
                                if (c_Tabella.indexOf(linea) < 0) { temp += tag; }
                                  else {  if (tipo=='C') comp = 1;  //...
                                }
                            }
                      } while (owl.nido >= 0);
               }
               if (!corretto) { System.out.println("Utility interrotta per errori."); comp = -1; };
               owl.reset(); //aggiunge intestazione padre
               tempor = owl.tags() + owl.tags() + tempor + temp + tag;
               return comp;
         }


        //---------------------//
        //      OUTPUT         //       PROCEDURE OUTPUT
        //---------------------//
         public static void waitkey() {         // Attende il tasto invio
          try { System.out.print("\nPremere INVIO per proseguire...\n");
                System.in.read(); } catch(Exception e) {}
         }



         //--------------
         // MAIN DI PROVA
         //--------------
         //public static void main(String []argv) {
         //       compone("PROVA1.OWL", "PROVA2.OWL", "prova1prova2.owl", ".");
         //}       

        }

        but I received this exception (the xml_pars.class is in %SOAP-HOME%\WEB-INF\classes)

        Generated fault: [Attributes={}] [faultCode=SOAP-ENV:Server] [faultString=Except
        ion from service object: null] [faultActorURI=/soap/servlet/rpcrouter] [DetailEn
        tries=
        [(0)=<stackTrace>java.lang.NullPointerException
                at xml_pars.tag(Unknown Source)
                at xml_pars.reset(Unknown Source)
                at service_controller.c_ProceduraTag(service_controller.java:104)
                at service_controller.compone0(service_controller.java:23)
                at service_controller.compone(service_controller.java:26)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
        java:39)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
        sorImpl.java:25)
                at java.lang.reflect.Method.invoke(Method.java:324)
                at org.apache.soap.server.RPCRouter.invoke(RPCRouter.java:146)
                at org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java
        :129)
                at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.
        java:354)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
                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.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:
        2422)
                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:163)
                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:19
        9)
                at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
        :828)
                at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
        ssConnection(Http11Protocol.java:700)
                at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
        :584)
                at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
        ool.java:683)
                at java.lang.Thread.run(Thread.java:534)
        </stackTrace>]
        ] [FaultEntries=]

        Why? Can anyone help me?
        TIA
        TIA




        ----
        Email.it, the professional e-mail, gratis per te:clicca qui

        Sponsor:
        Scopri il benessere che solo l'aloe vera regala al tuo corpo: cura la tua pelle
        Con la vasta gamma di prodotti che ti offre Erboristeria.com
        Clicca qui







    ----
    Email.it, the professional e-mail, gratis per te:clicca qui

    Sponsor:
    La palestra in casa da Oliviero.it Trovi un' ampia gamma di tapis roulant, a partire da ? 429,00! 

    Clicca qui



 
 
 --
 Email.it, the professional e-mail, gratis per te: http://www.email.it/f
 
 Sponsor:
 Stanco del tappetino mouse che hai??
* Stampaci l'immagine che vuoi tu!
* 
 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid!17&d-1

Re: problem in a web service

Posted by Martin Gainty <mg...@hotmail.com>.
Dont mean to sound like a broken record but
what is happening in xml_pars?

Martin
  ----- Original Message ----- 
  From: Francesco Dipalo 
  To: soap-user@ws.apache.org 
  Sent: Monday, January 17, 2005 2:11 PM
  Subject: Re: problem in a web service


  I use only a deployment descriptor file
  TIA
    ----- Original Message ----- 
    From: Martin Gainty 
    To: soap-user@ws.apache.org 
    Sent: Monday, January 17, 2005 3:15 PM
    Subject: Re: problem in a web service


    Francesco:

    Can we see the source code for xml_pars
    Also please provide the wsdl you are using

    Molte Grazie,

    Martin-
    001-617-852-7822
      ----- Original Message ----- 
      From: Francesco Dipalo 
      To: soap-user@ws.apache.org 
      Sent: Monday, January 17, 2005 6:18 AM
      Subject: problem in a web service


       I have written this .dd file: 
      <isd:service 
         xmlns:isd="http://xml.apache.org/xml-soap/deployment"
         id="urn:Composizione">
         
         <isd:provider type="java"
               scope="Application"
               methods="compone">
           <isd:java class="service_controller"
               static="false"/>
         </isd:provider>
         <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>
         <isd:mappings>
         </isd:mappings>    
      </isd:service>

      this client  ( in %SOAP-HOME%\WEB-INF\classes)

      import java.net.*;
      import java.util.*;
      import java.io.*;
      import org.apache.soap.*;
      import org.apache.soap.rpc.*;

      public class Client {
         static boolean corretto1=false;
         static boolean corretto2=false;
         
         static boolean Copy(String path, String filename) throws Exception {
            boolean flag=false;
            File pathTo = new File(path + filename); 
            File pathFrom = new File(filename);
            try { 
               FileInputStream inputFile = new FileInputStream(pathFrom); 
               int bytes = inputFile.available(); 
               pathTo.createNewFile(); 
               FileOutputStream outputFile = new FileOutputStream(pathTo); 
               int readBytes = 0; 
               while (readBytes < bytes) {   
                  outputFile.write(inputFile.read()); 
                  readBytes++; 
               } 
            inputFile.close(); 
            outputFile.close();
            flag=true; 
            } catch (FileNotFoundException e) { 
              flag=false;
              System.out.println("Il file: " + pathFrom.toString() + ", non esiste!"); 
              e.printStackTrace(); 
            } 
            return flag;
         }

         public static void main(String[] args) throws Exception {
            String c_Nomefile="";
            String c_Nomefile1="";
            String c_Nomefile2="";
            String CATALINA_HOME=System.getProperty("catalina.home"); 
            String [] lista = new File(".").list();
            URL url = new URL("http://localhost:8080/soap/servlet/rpcrouter"); 
            System.out.println("ELENCO SERVIZI:");
            for(int cx=0; cx<lista.length; cx++)
               if ( new File(lista[cx]).isFile() )                           //verifica se è file
                  if ( lista[cx].toLowerCase().lastIndexOf(".owl") >= 0)     //e con estensione owl
                     System.out.println((" * " + lista[cx]+"             ").substring(0,20));
            try {
               do {
                  System.out.print("Servizio principale (digitare anche l'estensione): ");
                  BufferedReader in1= new BufferedReader(new InputStreamReader(System.in));
                  c_Nomefile1 = in1.readLine();
               } while (!(c_Nomefile1.endsWith(".owl")));
               do {
                  System.out.print("Servizio da comporre (digitare anche l'estensione): ");
                  BufferedReader in2= new BufferedReader(new InputStreamReader(System.in));
                  c_Nomefile2 = in2.readLine();
               } while (!(c_Nomefile1.endsWith(".owl")));
               c_Nomefile = c_Nomefile1 + c_Nomefile2; // crea nome file composto
            } catch (Exception e) { e.printStackTrace(); }
            c_Nomefile = c_Nomefile1.substring(0,c_Nomefile1.indexOf('.')) + c_Nomefile2; 
            corretto1=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile1);
            corretto2=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile2);
            if ((corretto1==true) && (corretto2==true)) {
               Call call = new Call();
               call.setTargetObjectURI("urn:Composizione");   
               call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
               Vector params = new Vector();
               params.addElement(new Parameter("file_1", String.class, c_Nomefile1, null));
               params.addElement(new Parameter("file_2", String.class, c_Nomefile2, null));
               params.addElement(new Parameter("file_composto", String.class, c_Nomefile, null));
               params.addElement(new Parameter("path_output", String.class, CATALINA_HOME+"\\webapps\\soap\\WEB-INF\\classes\\", null));
               
               call.setParams(params);
               try {
           call.setMethodName("compone");   
                  Response resp = call.invoke(url, "");
                  if (resp.generatedFault()) {
                     Fault fault = resp.getFault();
                     System.err.println("Generated fault: " + fault);
                  } else {
                     Parameter ret = resp.getReturnValue();
                     Object value = ret.getValue();
                     switch (value.hashCode()) {
                        case 0: System.out.println("I due file non sono componibili"); break;
                        case 1: System.out.println("I due file sono stati composti nel file " +c_Nomefile); break;
                        case -1: System.out.println("Utility interrotta per errori"); break;
                     }
                  }
               } catch (SOAPException e) {
                  System.err.println("Caught SOAPException (" +e.getFaultCode() + "): " +e.getMessage());
               }
            } 
            try { 
               System.out.print("\nPremere INVIO per terminare...\n");
               System.in.read();
            } catch(Exception e) {}
         }
      }

      this service ( in %SOAP-HOME%\WEB-INF\classes)

      import java.io.*;
      //import xml_pars;

      public class service_controller {
       public static int c_Comp;                     //esito della composizione (1=ok, 0=non composto, -1=errore tag)
       public static String tempor;                  //final static String fileTMP = "tmp.owl";

       private static String c_Tabella;
       private static xml_pars owl = new xml_pars();  //classe parsing XML
       private static String linea;
       private static boolean corretto;
       
       //---------------------//
       //     COMPOSIZIONE    //      MAIN
       //---------------------//
       //Costruttori della classe:  //si possono togliere
               public service_controller () { }
               public service_controller (String file_1, String file_2, String file_composto, String path_output) {
                      compone(file_1, file_2, file_composto, path_output);
               }
       public static String get_output() { if (c_Comp <= 0) tempor = ""; return tempor; } //metodo di controllo
       public static int compone0(String file_1, String file_2, String file_composto, String path_output) {
             metodi_xml(file_2); return (c_Comp = c_ProceduraTag(file_1));
       }
       public static int compone(String file_1, String file_2, String file_composto, String path_output) {
             if (compone0(file_1, file_2, file_composto, path_output) <= 0) {

                    System.out.println("\nI due servizi non sono tra loro componibili.");
                    waitkey();

             } else {

                    System.out.println("\nFILE COMPOSTO:\n");
                    int cx = 0; owl.put_parsing(get_output());
                    do {    if ( ((cx++)%16) == 0) waitkey();
                            System.out.print(owl.ctags());
                    } while (owl.nido >= 0 || cx<3);

                    if (path_output.length() > 0) owl.newdir(path_output);       //se non c'S crea la cartella
                    owl.put_parsing(get_output());
                    owl.save_parsing(path_output + "/" + file_composto); //c_EliminaFile(); fare in modo che in path_output compaia il percorso fino a soap
                    //if (file_1.length() > 0) { owl.load_parsing(file_1); owl.save_parsing(path_output + "/" + file_1); }
                    //if (file_2.length() > 0) { owl.load_parsing(file_2); owl.save_parsing(path_output + "/" + file_2); }

             }
            return c_Comp;
       }


       //---------------------//
       //     METODI XML      //      PROCEDURE UTILITY
       //---------------------//
      // Carica un file.owl e lo compila in una tabella di: tipo, nome del tag + \n
       public static void metodi_xml (String file) {
             System.out.print("Apro il file "+file+" ... ");
             if (! (corretto = owl.load_parsing(file)) )
                    System.out.println("Errore!");
             else  {  // crea tabella
                    System.out.println("Ok!\nCompilo la tabella...");
                    owl.tag(2);          //salta header (tag <?> e tag Ontology)
                    c_Tabella = tempor = "";
                    while(true) {
                           c_AnalisiTag(owl.tags()); if (owl.nido < 0) break;
                           if (linea.length() > 1) c_Tabella += linea + "\n";
                           tempor += owl.tag_root(owl.xml_id);
                    }
             }
       }
      // Compila il singolo tag (tipo, nome del tag + \n)
       public static int c_AnalisiTag(String tag) {           // ritorna tipo tag e linea       
             linea = ".";       
             if (owl.si_tag(tag,"<owls:") > 0) {
                    linea = owl.search_true(tag, "owls:Class ", "C") +
                            owl.search_true(tag, "owls:ObjectProperty ", "P") +
                            //owl.search_true(tag, "owls:Ontology ", "O") +
                            linea;
                    if (linea.length() == 1) {
                           System.out.println("Tag sconosciuto: " + tag);
                           corretto = false; };
                    linea += owl.search_tag(tag, "name=");    //"owls:name"
             };
             return linea.charAt(0);
       }
      // Esegue la composizione del file con il file passato in metodi_xml
       public static int c_ProceduraTag(String file) {        // esegue utility
             String temp, tag; int comp = 0; temp = tag = "";
             System.out.print("Apro il file "+file+" ... ");
             if (! owl.load_parsing(file) ) {
                    System.out.println("Errore!"); corretto = false; };
             if (corretto) {
                    System.out.println("Ok!\nAvvio utility...");
                    owl.tag(2);   //salta header (tag <?> e tag Ontology)
                    do {   tag = owl.tags();    //o tag = owl.tag(0);
                           int tipo = c_AnalisiTag(tag);
                           if (linea.length() > 1) {
                              tag = owl.tag_root(owl.xml_id);
                              if (c_Tabella.indexOf(linea) < 0) { temp += tag; }
                                else {  if (tipo=='C') comp = 1;  //...
                              }
                          }
                    } while (owl.nido >= 0);
             }
             if (!corretto) { System.out.println("Utility interrotta per errori."); comp = -1; };
             owl.reset(); //aggiunge intestazione padre
             tempor = owl.tags() + owl.tags() + tempor + temp + tag;
             return comp;
       }


      //---------------------//
      //      OUTPUT         //       PROCEDURE OUTPUT
      //---------------------//
       public static void waitkey() {         // Attende il tasto invio
        try { System.out.print("\nPremere INVIO per proseguire...\n");
              System.in.read(); } catch(Exception e) {}
       }



       //--------------
       // MAIN DI PROVA
       //--------------
       //public static void main(String []argv) {
       //       compone("PROVA1.OWL", "PROVA2.OWL", "prova1prova2.owl", ".");
       //}       

      }

      but I received this exception (the xml_pars.class is in %SOAP-HOME%\WEB-INF\classes)

      Generated fault: [Attributes={}] [faultCode=SOAP-ENV:Server] [faultString=Except
      ion from service object: null] [faultActorURI=/soap/servlet/rpcrouter] [DetailEn
      tries=
      [(0)=<stackTrace>java.lang.NullPointerException
              at xml_pars.tag(Unknown Source)
              at xml_pars.reset(Unknown Source)
              at service_controller.c_ProceduraTag(service_controller.java:104)
              at service_controller.compone0(service_controller.java:23)
              at service_controller.compone(service_controller.java:26)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
      java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
      sorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:324)
              at org.apache.soap.server.RPCRouter.invoke(RPCRouter.java:146)
              at org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java
      :129)
              at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.
      java:354)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
              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.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:
      2422)
              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:163)
              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:19
      9)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
      :828)
              at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
      ssConnection(Http11Protocol.java:700)
              at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
      :584)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
      ool.java:683)
              at java.lang.Thread.run(Thread.java:534)
      </stackTrace>]
      ] [FaultEntries=]

      Why? Can anyone help me?
      TIA
      TIA




      ----
      Email.it, the professional e-mail, gratis per te:clicca qui

      Sponsor:
      Scopri il benessere che solo l'aloe vera regala al tuo corpo: cura la tua pelle
      Con la vasta gamma di prodotti che ti offre Erboristeria.com
      Clicca qui







  ----
  Email.it, the professional e-mail, gratis per te:clicca qui

  Sponsor:
  La palestra in casa da Oliviero.it Trovi un' ampia gamma di tapis roulant, a partire da ? 429,00! 

  Clicca qui



Re: problem in a web service

Posted by Francesco Dipalo <ss...@email.it>.
I use only a deployment descriptor file
TIA
  ----- Original Message ----- 
  From: Martin Gainty 
  To: soap-user@ws.apache.org 
  Sent: Monday, January 17, 2005 3:15 PM
  Subject: Re: problem in a web service


  Francesco:

  Can we see the source code for xml_pars
  Also please provide the wsdl you are using

  Molte Grazie,

  Martin-
  001-617-852-7822
    ----- Original Message ----- 
    From: Francesco Dipalo 
    To: soap-user@ws.apache.org 
    Sent: Monday, January 17, 2005 6:18 AM
    Subject: problem in a web service


     I have written this .dd file: 
    <isd:service 
       xmlns:isd="http://xml.apache.org/xml-soap/deployment"
       id="urn:Composizione">
       
       <isd:provider type="java"
             scope="Application"
             methods="compone">
         <isd:java class="service_controller"
             static="false"/>
       </isd:provider>
       <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>
       <isd:mappings>
       </isd:mappings>    
    </isd:service>

    this client  ( in %SOAP-HOME%\WEB-INF\classes)

    import java.net.*;
    import java.util.*;
    import java.io.*;
    import org.apache.soap.*;
    import org.apache.soap.rpc.*;

    public class Client {
       static boolean corretto1=false;
       static boolean corretto2=false;
       
       static boolean Copy(String path, String filename) throws Exception {
          boolean flag=false;
          File pathTo = new File(path + filename); 
          File pathFrom = new File(filename);
          try { 
             FileInputStream inputFile = new FileInputStream(pathFrom); 
             int bytes = inputFile.available(); 
             pathTo.createNewFile(); 
             FileOutputStream outputFile = new FileOutputStream(pathTo); 
             int readBytes = 0; 
             while (readBytes < bytes) {   
                outputFile.write(inputFile.read()); 
                readBytes++; 
             } 
          inputFile.close(); 
          outputFile.close();
          flag=true; 
          } catch (FileNotFoundException e) { 
            flag=false;
            System.out.println("Il file: " + pathFrom.toString() + ", non esiste!"); 
            e.printStackTrace(); 
          } 
          return flag;
       }

       public static void main(String[] args) throws Exception {
          String c_Nomefile="";
          String c_Nomefile1="";
          String c_Nomefile2="";
          String CATALINA_HOME=System.getProperty("catalina.home"); 
          String [] lista = new File(".").list();
          URL url = new URL("http://localhost:8080/soap/servlet/rpcrouter"); 
          System.out.println("ELENCO SERVIZI:");
          for(int cx=0; cx<lista.length; cx++)
             if ( new File(lista[cx]).isFile() )                           //verifica se è file
                if ( lista[cx].toLowerCase().lastIndexOf(".owl") >= 0)     //e con estensione owl
                   System.out.println((" * " + lista[cx]+"             ").substring(0,20));
          try {
             do {
                System.out.print("Servizio principale (digitare anche l'estensione): ");
                BufferedReader in1= new BufferedReader(new InputStreamReader(System.in));
                c_Nomefile1 = in1.readLine();
             } while (!(c_Nomefile1.endsWith(".owl")));
             do {
                System.out.print("Servizio da comporre (digitare anche l'estensione): ");
                BufferedReader in2= new BufferedReader(new InputStreamReader(System.in));
                c_Nomefile2 = in2.readLine();
             } while (!(c_Nomefile1.endsWith(".owl")));
             c_Nomefile = c_Nomefile1 + c_Nomefile2; // crea nome file composto
          } catch (Exception e) { e.printStackTrace(); }
          c_Nomefile = c_Nomefile1.substring(0,c_Nomefile1.indexOf('.')) + c_Nomefile2; 
          corretto1=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile1);
          corretto2=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile2);
          if ((corretto1==true) && (corretto2==true)) {
             Call call = new Call();
             call.setTargetObjectURI("urn:Composizione");   
             call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
             Vector params = new Vector();
             params.addElement(new Parameter("file_1", String.class, c_Nomefile1, null));
             params.addElement(new Parameter("file_2", String.class, c_Nomefile2, null));
             params.addElement(new Parameter("file_composto", String.class, c_Nomefile, null));
             params.addElement(new Parameter("path_output", String.class, CATALINA_HOME+"\\webapps\\soap\\WEB-INF\\classes\\", null));
             
             call.setParams(params);
             try {
         call.setMethodName("compone");   
                Response resp = call.invoke(url, "");
                if (resp.generatedFault()) {
                   Fault fault = resp.getFault();
                   System.err.println("Generated fault: " + fault);
                } else {
                   Parameter ret = resp.getReturnValue();
                   Object value = ret.getValue();
                   switch (value.hashCode()) {
                      case 0: System.out.println("I due file non sono componibili"); break;
                      case 1: System.out.println("I due file sono stati composti nel file " +c_Nomefile); break;
                      case -1: System.out.println("Utility interrotta per errori"); break;
                   }
                }
             } catch (SOAPException e) {
                System.err.println("Caught SOAPException (" +e.getFaultCode() + "): " +e.getMessage());
             }
          } 
          try { 
             System.out.print("\nPremere INVIO per terminare...\n");
             System.in.read();
          } catch(Exception e) {}
       }
    }

    this service ( in %SOAP-HOME%\WEB-INF\classes)

    import java.io.*;
    //import xml_pars;

    public class service_controller {
     public static int c_Comp;                     //esito della composizione (1=ok, 0=non composto, -1=errore tag)
     public static String tempor;                  //final static String fileTMP = "tmp.owl";

     private static String c_Tabella;
     private static xml_pars owl = new xml_pars();  //classe parsing .XML
     private static String linea;
     private static boolean corretto;
     
     //---------------------//
     //     COMPOSIZIONE    //      MAIN
     //---------------------//
     //Costruttori della classe:  //si possono togliere
             public service_controller () { }
             public service_controller (String file_1, String file_2, String file_composto, String path_output) {
                    compone(file_1, file_2, file_composto, path_output);
             }
     public static String get_output() { if (c_Comp <= 0) tempor = ""; return tempor; } //metodo di controllo
     public static int compone0(String file_1, String file_2, String file_composto, String path_output) {
           metodi_xml(file_2); return (c_Comp = c_ProceduraTag(file_1));
     }
     public static int compone(String file_1, String file_2, String file_composto, String path_output) {
           if (compone0(file_1, file_2, file_composto, path_output) <= 0) {

                  System.out.println("\nI due servizi non sono tra loro componibili.");
                  waitkey();

           } else {

                  System.out.println("\nFILE COMPOSTO:\n");
                  int cx = 0; owl.put_parsing(get_output());
                  do {    if ( ((cx++)%16) == 0) waitkey();
                          System.out.print(owl.ctags());
                  } while (owl.nido >= 0 || cx<3);

                  if (path_output.length() > 0) owl.newdir(path_output);       //se non c'S crea la cartella
                  owl.put_parsing(get_output());
                  owl.save_parsing(path_output + "/" + file_composto); //c_EliminaFile(); fare in modo che in path_output compaia il percorso fino a soap
                  //if (file_1.length() > 0) { owl.load_parsing(file_1); owl.save_parsing(path_output + "/" + file_1); }
                  //if (file_2.length() > 0) { owl.load_parsing(file_2); owl.save_parsing(path_output + "/" + file_2); }

           }
          return c_Comp;
     }


     //---------------------//
     //     METODI XML      //      PROCEDURE UTILITY
     //---------------------//
    // Carica un file.owl e lo compila in una tabella di: tipo, nome del tag + \n
     public static void metodi_xml (String file) {
           System.out.print("Apro il file "+file+" ... ");
           if (! (corretto = owl.load_parsing(file)) )
                  System.out.println("Errore!");
           else  {  // crea tabella
                  System.out.println("Ok!\nCompilo la tabella...");
                  owl.tag(2);          //salta header (tag <?> e tag Ontology)
                  c_Tabella = tempor = "";
                  while(true) {
                         c_AnalisiTag(owl.tags()); if (owl.nido < 0) break;
                         if (linea.length() > 1) c_Tabella += linea + "\n";
                         tempor += owl.tag_root(owl.xml_id);
                  }
           }
     }
    // Compila il singolo tag (tipo, nome del tag + \n)
     public static int c_AnalisiTag(String tag) {           // ritorna tipo tag e linea       
           linea = ".";       
           if (owl.si_tag(tag,"<owls:") > 0) {
                  linea = owl.search_true(tag, "owls:Class ", "C") +
                          owl.search_true(tag, "owls:ObjectProperty ", "P") +
                          //owl.search_true(tag, "owls:Ontology ", "O") +
                          linea;
                  if (linea.length() == 1) {
                         System.out.println("Tag sconosciuto: " + tag);
                         corretto = false; };
                  linea += owl.search_tag(tag, "name=");    //"owls:name"
           };
           return linea.charAt(0);
     }
    // Esegue la composizione del file con il file passato in metodi_xml
     public static int c_ProceduraTag(String file) {        // esegue utility
           String temp, tag; int comp = 0; temp = tag = "";
           System.out.print("Apro il file "+file+" ... ");
           if (! owl.load_parsing(file) ) {
                  System.out.println("Errore!"); corretto = false; };
           if (corretto) {
                  System.out.println("Ok!\nAvvio utility...");
                  owl.tag(2);   //salta header (tag <?> e tag Ontology)
                  do {   tag = owl.tags();    //o tag = owl.tag(0);
                         int tipo = c_AnalisiTag(tag);
                         if (linea.length() > 1) {
                            tag = owl.tag_root(owl.xml_id);
                            if (c_Tabella.indexOf(linea) < 0) { temp += tag; }
                              else {  if (tipo=='C') comp = 1;  //...
                            }
                        }
                  } while (owl.nido >= 0);
           }
           if (!corretto) { System.out.println("Utility interrotta per errori."); comp = -1; };
           owl.reset(); //aggiunge intestazione padre
           tempor = owl.tags() + owl.tags() + tempor + temp + tag;
           return comp;
     }


    //---------------------//
    //      OUTPUT         //       PROCEDURE OUTPUT
    //---------------------//
     public static void waitkey() {         // Attende il tasto invio
      try { System.out.print("\nPremere INVIO per proseguire...\n");
            System.in.read(); } catch(Exception e) {}
     }



     //--------------
     // MAIN DI PROVA
     //--------------
     //public static void main(String []argv) {
     //       compone("PROVA1.OWL", "PROVA2.OWL", "prova1prova2.owl", ".");
     //}       

    }

    but I received this exception (the xml_pars.class is in %SOAP-HOME%\WEB-INF\classes)

    Generated fault: [Attributes={}] [faultCode=SOAP-ENV:Server] [faultString=Except
    ion from service object: null] [faultActorURI=/soap/servlet/rpcrouter] [DetailEn
    tries=
    [(0)=<stackTrace>java.lang.NullPointerException
            at xml_pars.tag(Unknown Source)
            at xml_pars.reset(Unknown Source)
            at service_controller.c_ProceduraTag(service_controller.java:104)
            at service_controller.compone0(service_controller.java:23)
            at service_controller.compone(service_controller.java:26)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:324)
            at org.apache.soap.server.RPCRouter.invoke(RPCRouter.java:146)
            at org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java
    :129)
            at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.
    java:354)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
            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.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:
    2422)
            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:163)
            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:19
    9)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :828)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ssConnection(Http11Protocol.java:700)
            at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
    :584)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:683)
            at java.lang.Thread.run(Thread.java:534)
    </stackTrace>]
    ] [FaultEntries=]

    Why? Can anyone help me?
    TIA
    TIA




    ----
    Email.it, the professional e-mail, gratis per te:clicca qui

    Sponsor:
    Scopri il benessere che solo l'aloe vera regala al tuo corpo: cura la tua pelle
    Con la vasta gamma di prodotti che ti offre Erboristeria.com
    Clicca qui



 
 
 --
 Email.it, the professional e-mail, gratis per te: http://www.email.it/f
 
 Sponsor:
 Ascolta le migliori suonerie per il tuo cellulare 
 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid113&d-1

Re: problem in a web service

Posted by Martin Gainty <mg...@hotmail.com>.
Francesco:

Can we see the source code for xml_pars
Also please provide the wsdl you are using

Molte Grazie,

Martin-
001-617-852-7822
  ----- Original Message ----- 
  From: Francesco Dipalo 
  To: soap-user@ws.apache.org 
  Sent: Monday, January 17, 2005 6:18 AM
  Subject: problem in a web service


   I have written this .dd file: 
  <isd:service 
     xmlns:isd="http://xml.apache.org/xml-soap/deployment"
     id="urn:Composizione">
     
     <isd:provider type="java"
           scope="Application"
           methods="compone">
       <isd:java class="service_controller"
           static="false"/>
     </isd:provider>
     <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>
     <isd:mappings>
     </isd:mappings>    
  </isd:service>

  this client  ( in %SOAP-HOME%\WEB-INF\classes)

  import java.net.*;
  import java.util.*;
  import java.io.*;
  import org.apache.soap.*;
  import org.apache.soap.rpc.*;

  public class Client {
     static boolean corretto1=false;
     static boolean corretto2=false;
     
     static boolean Copy(String path, String filename) throws Exception {
        boolean flag=false;
        File pathTo = new File(path + filename); 
        File pathFrom = new File(filename);
        try { 
           FileInputStream inputFile = new FileInputStream(pathFrom); 
           int bytes = inputFile.available(); 
           pathTo.createNewFile(); 
           FileOutputStream outputFile = new FileOutputStream(pathTo); 
           int readBytes = 0; 
           while (readBytes < bytes) {   
              outputFile.write(inputFile.read()); 
              readBytes++; 
           } 
        inputFile.close(); 
        outputFile.close();
        flag=true; 
        } catch (FileNotFoundException e) { 
          flag=false;
          System.out.println("Il file: " + pathFrom.toString() + ", non esiste!"); 
          e.printStackTrace(); 
        } 
        return flag;
     }

     public static void main(String[] args) throws Exception {
        String c_Nomefile="";
        String c_Nomefile1="";
        String c_Nomefile2="";
        String CATALINA_HOME=System.getProperty("catalina.home"); 
        String [] lista = new File(".").list();
        URL url = new URL("http://localhost:8080/soap/servlet/rpcrouter"); 
        System.out.println("ELENCO SERVIZI:");
        for(int cx=0; cx<lista.length; cx++)
           if ( new File(lista[cx]).isFile() )                           //verifica se è file
              if ( lista[cx].toLowerCase().lastIndexOf(".owl") >= 0)     //e con estensione .owl
                 System.out.println((" * " + lista[cx]+"             ").substring(0,20));
        try {
           do {
              System.out.print("Servizio principale (digitare anche l'estensione): ");
              BufferedReader in1= new BufferedReader(new InputStreamReader(System.in));
              c_Nomefile1 = in1.readLine();
           } while (!(c_Nomefile1.endsWith(".owl")));
           do {
              System.out.print("Servizio da comporre (digitare anche l'estensione): ");
              BufferedReader in2= new BufferedReader(new InputStreamReader(System.in));
              c_Nomefile2 = in2.readLine();
           } while (!(c_Nomefile1.endsWith(".owl")));
           c_Nomefile = c_Nomefile1 + c_Nomefile2; // crea nome file composto
        } catch (Exception e) { e.printStackTrace(); }
        c_Nomefile = c_Nomefile1.substring(0,c_Nomefile1.indexOf('.')) + c_Nomefile2; 
        corretto1=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile1);
        corretto2=Copy(CATALINA_HOME+"\\bin\\",c_Nomefile2);
        if ((corretto1==true) && (corretto2==true)) {
           Call call = new Call();
           call.setTargetObjectURI("urn:Composizione");   
           call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
           Vector params = new Vector();
           params.addElement(new Parameter("file_1", String.class, c_Nomefile1, null));
           params.addElement(new Parameter("file_2", String.class, c_Nomefile2, null));
           params.addElement(new Parameter("file_composto", String.class, c_Nomefile, null));
           params.addElement(new Parameter("path_output", String.class, CATALINA_HOME+"\\webapps\\soap\\WEB-INF\\classes\\", null));
           
           call.setParams(params);
           try {
       call.setMethodName("compone");   
              Response resp = call.invoke(url, "");
              if (resp.generatedFault()) {
                 Fault fault = resp.getFault();
                 System.err.println("Generated fault: " + fault);
              } else {
                 Parameter ret = resp.getReturnValue();
                 Object value = ret.getValue();
                 switch (value.hashCode()) {
                    case 0: System.out.println("I due file non sono componibili"); break;
                    case 1: System.out.println("I due file sono stati composti nel file " +c_Nomefile); break;
                    case -1: System.out.println("Utility interrotta per errori"); break;
                 }
              }
           } catch (SOAPException e) {
              System.err.println("Caught SOAPException (" +e.getFaultCode() + "): " +e.getMessage());
           }
        } 
        try { 
           System.out.print("\nPremere INVIO per terminare...\n");
           System.in.read();
        } catch(Exception e) {}
     }
  }

  this service ( in %SOAP-HOME%\WEB-INF\classes)

  import java.io.*;
  //import xml_pars;

  public class service_controller {
   public static int c_Comp;                     //esito della composizione (1=ok, 0=non composto, -1=errore tag)
   public static String tempor;                  //final static String fileTMP = "tmp.owl";

   private static String c_Tabella;
   private static xml_pars owl = new xml_pars();  //classe parsing XML
   private static String linea;
   private static boolean corretto;
   
   //---------------------//
   //     COMPOSIZIONE    //      MAIN
   //---------------------//
   //Costruttori della classe:  //si possono togliere
           public service_controller () { }
           public service_controller (String file_1, String file_2, String file_composto, String path_output) {
                  compone(file_1, file_2, file_composto, path_output);
           }
   public static String get_output() { if (c_Comp <= 0) tempor = ""; return tempor; } //metodo di controllo
   public static int compone0(String file_1, String file_2, String file_composto, String path_output) {
         metodi_xml(file_2); return (c_Comp = c_ProceduraTag(file_1));
   }
   public static int compone(String file_1, String file_2, String file_composto, String path_output) {
         if (compone0(file_1, file_2, file_composto, path_output) <= 0) {

                System.out.println("\nI due servizi non sono tra loro componibili.");
                waitkey();

         } else {

                System.out.println("\nFILE COMPOSTO:\n");
                int cx = 0; owl.put_parsing(get_output());
                do {    if ( ((cx++)%16) == 0) waitkey();
                        System.out.print(owl.ctags());
                } while (owl.nido >= 0 || cx<3);

                if (path_output.length() > 0) owl.newdir(path_output);       //se non c'S crea la cartella
                owl.put_parsing(get_output());
                owl.save_parsing(path_output + "/" + file_composto); //c_EliminaFile(); fare in modo che in path_output compaia il percorso fino a soap
                //if (file_1.length() > 0) { owl.load_parsing(file_1); owl.save_parsing(path_output + "/" + file_1); }
                //if (file_2.length() > 0) { owl.load_parsing(file_2); owl.save_parsing(path_output + "/" + file_2); }

         }
        return c_Comp;
   }


   //---------------------//
   //     METODI XML      //      PROCEDURE UTILITY
   //---------------------//
  // Carica un file.owl e lo compila in una tabella di: tipo, nome del tag + \n
   public static void metodi_xml (String file) {
         System.out.print("Apro il file "+file+" ... ");
         if (! (corretto = owl.load_parsing(file)) )
                System.out.println("Errore!");
         else  {  // crea tabella
                System.out.println("Ok!\nCompilo la tabella...");
                owl.tag(2);          //salta header (tag <?> e tag Ontology)
                c_Tabella = tempor = "";
                while(true) {
                       c_AnalisiTag(owl.tags()); if (owl.nido < 0) break;
                       if (linea.length() > 1) c_Tabella += linea + "\n";
                       tempor += owl.tag_root(owl.xml_id);
                }
         }
   }
  // Compila il singolo tag (tipo, nome del tag + \n)
   public static int c_AnalisiTag(String tag) {           // ritorna tipo tag e linea       
         linea = ".";       
         if (owl.si_tag(tag,"<owls:") > 0) {
                linea = owl.search_true(tag, "owls:Class ", "C") +
                        owl.search_true(tag, "owls:ObjectProperty ", "P") +
                        //owl.search_true(tag, "owls:Ontology ", "O") +
                        linea;
                if (linea.length() == 1) {
                       System.out.println("Tag sconosciuto: " + tag);
                       corretto = false; };
                linea += owl.search_tag(tag, "name=");    //"owls:name"
         };
         return linea.charAt(0);
   }
  // Esegue la composizione del file con il file passato in metodi_xml
   public static int c_ProceduraTag(String file) {        // esegue utility
         String temp, tag; int comp = 0; temp = tag = "";
         System.out.print("Apro il file "+file+" ... ");
         if (! owl.load_parsing(file) ) {
                System.out.println("Errore!"); corretto = false; };
         if (corretto) {
                System.out.println("Ok!\nAvvio utility...");
                owl.tag(2);   //salta header (tag <?> e tag Ontology)
                do {   tag = owl.tags();    //o tag = owl.tag(0);
                       int tipo = c_AnalisiTag(tag);
                       if (linea.length() > 1) {
                          tag = owl.tag_root(owl.xml_id);
                          if (c_Tabella.indexOf(linea) < 0) { temp += tag; }
                            else {  if (tipo=='C') comp = 1;  //...
                          }
                      }
                } while (owl.nido >= 0);
         }
         if (!corretto) { System.out.println("Utility interrotta per errori."); comp = -1; };
         owl.reset(); //aggiunge intestazione padre
         tempor = owl.tags() + owl.tags() + tempor + temp + tag;
         return comp;
   }


  //---------------------//
  //      OUTPUT         //       PROCEDURE OUTPUT
  //---------------------//
   public static void waitkey() {         // Attende il tasto invio
    try { System.out.print("\nPremere INVIO per proseguire...\n");
          System.in.read(); } catch(Exception e) {}
   }



   //--------------
   // MAIN DI PROVA
   //--------------
   //public static void main(String []argv) {
   //       compone("PROVA1.OWL", "PROVA2.OWL", "prova1prova2.owl", ".");
   //}       

  }

  but I received this exception (the xml_pars.class is in %SOAP-HOME%\WEB-INF\classes)

  Generated fault: [Attributes={}] [faultCode=SOAP-ENV:Server] [faultString=Except
  ion from service object: null] [faultActorURI=/soap/servlet/rpcrouter] [DetailEn
  tries=
  [(0)=<stackTrace>java.lang.NullPointerException
          at xml_pars.tag(Unknown Source)
          at xml_pars.reset(Unknown Source)
          at service_controller.c_ProceduraTag(service_controller.java:104)
          at service_controller.compone0(service_controller.java:23)
          at service_controller.compone(service_controller.java:26)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
  java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
  sorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:324)
          at org.apache.soap.server.RPCRouter.invoke(RPCRouter.java:146)
          at org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java
  :129)
          at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.
  java:354)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
          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.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:
  2422)
          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:163)
          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:19
  9)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
  :828)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
  ssConnection(Http11Protocol.java:700)
          at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
  :584)
          at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
  ool.java:683)
          at java.lang.Thread.run(Thread.java:534)
  </stackTrace>]
  ] [FaultEntries=]

  Why? Can anyone help me?
  TIA
  TIA




  ----
  Email.it, the professional e-mail, gratis per te:clicca qui

  Sponsor:
  Scopri il benessere che solo l'aloe vera regala al tuo corpo: cura la tua pelle
  Con la vasta gamma di prodotti che ti offre Erboristeria.com
  Clicca qui