Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    2

    Pubblicazione Web Services

    Salve a tutti!Sono un programmatore java alle prime armi e sto
    sviluppando web service utilizzando l'ambiente di sviluppo eclipse e
    come Web server Apache Tomcat con supporto axis.
    Ho creato una classe java
    codice:
    public class ProvaReturn {
    	ProvaReturn(){} 
    	public ReturnData Ret (){
    		ReturnData Return = new ReturnData();
    		Return.set_ErrorId(1);
    		Return.set_ErrorText("errore");
    		return Return;
    	}
    }

    al cui interno faccio riferimento ad i metodi set_ErrorId set_ErrorText
    presenti in un'altra classe:

    codice:
    import java.io.Serializable;
    
    public class ReturnData implements Serializable {
    	
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	private String ErrorText, FileXML;
    	private int ErrorId;
    	
    	public ReturnData(){};
    	public void set_ErrorText(String errore){ErrorText = errore;}
    	public void set_FileXML(String File){FileXML = File;}
    	public void set_ErrorId(int id){ErrorId = id;}
    	
    	public String get_ErrorText(){return ErrorText;}
    	public String get_FileXML(){return FileXML;}
    	public int get_ErrorId(){return ErrorId;}
    }
    Per realizzare il Web Service relativo alla classe ProvaReturn ho copiato il
    file ProvaReturn.java nella directory ..\Programmi\Eclipse\Tomcat 5.5
    \webapps\axis modificandone l'estensione in ProvaReturn.jws.

    Successivamente ho:

    1. Esportato ProvaReturn.jar in ..\Programmi\Eclipse\Tomcat 5.5
    \webapps\axis\WEB-INF\lib
    2. Copiato i file .class in ..\Programmi\Eclipse\Tomcat 5.5
    \webapps\axis\WEB-INF\classes
    3. Inserito il file ProvaReturn.jar e Return.jar nella classpath
    4. Creato il ProvaReturn.wsdd

    codice:
    <deployment 
      xmlns="http://xml.apache.org/axis/wsdd/" 
      xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> 
      <service name="ProvaReturn" provider="java:RPC" style = "rpc" 
    use "encoded"> 
        <parameter name="className" value="ProvaReturn"/> 
        <parameter name="allowedMethods" value="Ret"/> 
        <parameter name="scope" value="Session"/> 
        <parameter name="enableRemoteAdmin" value="true"/> 
        <beanMapping qname="myNS:ReturnData" 
    xmlns:myNS="ProvaReturn" languagespecificType="java:ReturnData"/>
      </service> 
    </deployment>
    5. lanciato il comando java org.apache.axis.client.AdminClient
    ProvaReturn.wsdd affinchè il mio webservice fosse pubblicato sul link
    http://localhost:8080/axis/servlet/AxisServlet ...

    ma il problema è che non viene pubblicato!!!:"( dove sbaglio???help!!!

  2. #2
    Guarda che io ho lo stesso problema!

    Configurazione della postazione di lavoro:
    1. Lavoro su un macchina Linux con Distribuzione Ubuntu 7.10
    2. Eclipse Europa 3.2
    3. TomCat 5.5
    4. Axis 1.0 (per motivi di compatibilità del libro di testo suggerito dal prof.)

    Per verificare l'effettiva configurazione del web service su la mia macchina ho proceduto nella seguente maniera:

    1. ho realizzato una semplice applicazione denominata HelloWorldService.ja la quale mi restituisce a video il solito messaggio "Hello World!" ed il listato viene fornito sotto per completezza:

    codice:
    /**
    
     * HelloWorldService.java
    
     *
    
     * This file was auto-generated from WSDL
    
     * by the Apache Axis Wsdl2java emitter.
    
     */
    
    
    
    public class HelloWorldService {
    
    
    
        // Use to get a proxy class for HelloWorldServicePort
    
        private final java.lang.String HelloWorldServicePort_address 
    
          = "http://localhost:8080/axis/HelloWorldService.jws";
    
        public HelloWorldServicePortType getHelloWorldServicePort() {
    
           java.net.URL endpoint;
    
            try {
    
                endpoint = new java.net.URL(HelloWorldServicePort_address);
    
            }
    
            catch (java.net.MalformedURLException e) {
    
                return null; // unlikely as URL was validated in wsdl2java
    
            }
    
            return getHelloWorldServicePort(endpoint);
    
        }
    
    
    
        public HelloWorldServicePortType 
    
          getHelloWorldServicePort(java.net.URL portAddress) {
    
            try {
    
                return new HelloWorldServiceSoapBindingStub(portAddress);
    
            }
    
            catch (org.apache.axis.SerializationException e) {
    
                return null; // ???
    
            }
    
        }
    
    }
    2. ho copiato il contenuto della cartella /home/giuseppe/Università/Laboratorio Sistemi Distribuiti/Codice/Librerie/axis-1_0/webapps (cioè dove avevo scompattato il pacchetto di axis 1.0) e l'ho copiato nella cartella /var/lib/tomcat5.5/webapps di TomCat.

    3. ho copiato il file HelloWorldService.java in /var/lib/tomcat5.5/webapps/axis e rinominando opportunamente come HelloWorldService.jws
    codice:
    root@giuseppe-laptop:/var/lib/tomcat5.5/webapps/axis# ls -R
    .:
    fingerprint.jsp  happyaxis.jsp  HelloWorldService.jws  index.html  StockQuoteService.jws  WEB-INF
    
    ./WEB-INF:
    classes  lib  perms.lst  users.lst  web.xml
    
    ./WEB-INF/classes:
    samples
    
    ./WEB-INF/classes/samples:
    addr         bidbuy  encoding          jaxm    message  proxy     stock      userguide
    attachments  echo    integrationGuide  jaxrpc  misc     security  transport
    
    ./WEB-INF/classes/samples/addr:
    AddressBook.class                AddressBookSOAPBindingImpl.class      AddressBookTestCase.class  Main.class
    AddressBookService.class         AddressBookSOAPBindingSkeleton.class  Address.class              Phone.class
    AddressBookServiceLocator.class  AddressBookSOAPBindingStub.class      DOMUtils.class             StateType.class
    
    ./WEB-INF/classes/samples/attachments:
    EchoAttachment.class          EchoAttachmentsService$MemoryOnlyDataSource.class  TestRef$MemoryOnlyDataSource.class
    EchoAttachmentsService.class  TestRef.class
    
    ./WEB-INF/classes/samples/bidbuy:
    Address.class          rfq$10.class  rfq$15.class  rfq$1.class  rfq$6.class  rfq$MyTableModel.class
    BidService.class       rfq$11.class  rfq$16.class  rfq$2.class  rfq$7.class  Service.class
    LineItem.class         rfq$12.class  rfq$17.class  rfq$3.class  rfq$8.class  TestClient.class
    PurchaseOrder.class    rfq$13.class  rfq$18.class  rfq$4.class  rfq$9.class  v3.class
    RegistryService.class  rfq$14.class  rfq$19.class  rfq$5.class  rfq.class    vInterface.class
    
    ./WEB-INF/classes/samples/echo:
    echoHeaderStringHandler.class  InteropTestServiceLocator.class   SOAPStruct.class        TestClient.class
    echoHeaderStructHandler.class  InteropTestSoapBindingImpl.class  SOAPStructStruct.class
    InteropTestPortType.class      InteropTestSoapBindingStub.class  TestClient$1.class
    InteropTestService.class       SOAPArrayStruct.class             TestClient$2.class
    
    ./WEB-INF/classes/samples/encoding:
    Data.class       DataDeserFactory.class  DataSerFactory.class  TestElem.class
    DataDeser.class  DataSer.class           ElementService.class  TestSer.class
    
    ./WEB-INF/classes/samples/integrationGuide:
    example1  example2
    
    ./WEB-INF/classes/samples/integrationGuide/example1:
    MyListPortsWriter.class  MyWSDL2Java.class
    
    ./WEB-INF/classes/samples/integrationGuide/example2:
    MyDeployWriter.class  MyEmitter.class  MyGeneratorFactory.class  WSDL2Useless.class
    
    ./WEB-INF/classes/samples/jaxm:
    DelayedStockQuote.class  SOAPFaultTest.class  UddiPing.class
    
    ./WEB-INF/classes/samples/jaxrpc:
    address  GetInfo.class  GetQuote1.class  hello
    
    ./WEB-INF/classes/samples/jaxrpc/address:
    AddressBean.class    AddressService.class         AddressServiceServiceLocator.class  AddressSoapBindingStub.class
    AddressClient.class  AddressServiceService.class  AddressSoapBindingImpl.class
    
    ./WEB-INF/classes/samples/jaxrpc/hello:
    ClientHandler.class  HelloBindingImpl.class  Hello.class  HelloClient.class  ServerHandler.class
    
    ./WEB-INF/classes/samples/message:
    MessageService.class  TestMsg.class
    
    ./WEB-INF/classes/samples/misc:
    TestClient.class
    
    ./WEB-INF/classes/samples/proxy:
    ProxyService.class
    
    ./WEB-INF/classes/samples/security:
    Client.class  ClientSigningHandler.class  LogHandler.class  Service.class  SignedSOAPEnvelope.class
    
    ./WEB-INF/classes/samples/stock:
    ComInfoService.class  GetInfo.class  GetQuote1.class  GetQuote2.class  GetQuote.class  StockQuoteService.class
    
    ./WEB-INF/classes/samples/transport:
    FileReader.class  FileSender.class  FileTest.class  FileTransport.class  tcp
    
    ./WEB-INF/classes/samples/transport/tcp:
    AdminClient.class  Handler.class      TCPListener$SocketHandler.class  TCPTransport.class
    GetQuote.class     TCPListener.class  TCPSender.class
    
    ./WEB-INF/classes/samples/userguide:
    example1  example2  example3  example4  example5  example6
    
    ./WEB-INF/classes/samples/userguide/example1:
    TestClient.class
    
    ./WEB-INF/classes/samples/userguide/example2:
    CalcClient.class
    
    ./WEB-INF/classes/samples/userguide/example3:
    Client.class  MyService.class
    
    ./WEB-INF/classes/samples/userguide/example4:
    Client.class  LogHandler.class  Service.class
    
    ./WEB-INF/classes/samples/userguide/example5:
    BeanService.class  Client.class  Order.class
    
    ./WEB-INF/classes/samples/userguide/example6:
    WidgetPrice.class
    
    ./WEB-INF/lib:
    axis-ant.jar  commons-discovery.jar  jaxrpc.jar       saaj.jar    xercesImpl.jar
    axis.jar      commons-logging.jar    log4j-1.2.4.jar  wsdl4j.jar
    4. ho riavviato il server TomCat
    codice:
    root@giuseppe-laptop:/etc/init.d# ./tomcat5.5 restart
     * Stopping Tomcat servlet engine tomcat5.5                                                                          [ OK ]
     * Starting Tomcat servlet engine tomcat5.5                                                                          [ OK ]
    5. ho digitato la seguente URL: http://localhost:8180/axis/HelloWorldService.jws
    ed in primis mi è stato visualizzato il seguente messaggio di errore:
    codice:
    HTTP Status 500 -
    
    type Exception report
    
    message
    
    description The server encountered an internal error () that prevented it from fulfilling this request.
    
    exception
    
    javax.servlet.ServletException: Error instantiating servlet class org.apache.axis.transport.http.AxisServlet
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	java.lang.Thread.run(Thread.java:619)
    
    root cause
    
    java.lang.NoClassDefFoundError: Could not initialize class org.apache.axis.transport.http.AxisServlet
    	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    	java.lang.Class.newInstance0(Class.java:355)
    	java.lang.Class.newInstance(Class.java:308)
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	java.lang.Thread.run(Thread.java:619)
    
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5 logs.
    Apache Tomcat/5.5
    Giuseppe SPECCHIO

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.