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