создаю всё это дело в JDevelopere следующим образом: создаю новый ворспейс)(ну и проект соответственно) потом создаю там так же новый java class: webtest.java: Код | public class WebTest { public WebTest() { } /** * * @webmethod */ //--------то что я добавил------ public String privet(String name) { return "privet "+name; } //--------------- }
|
дальше нажимаю правой кнопкой на этом классе и выбираю сгенерить вэб сервис... он генерит его(правильно точно)... правой кнопкой по вэб сервису сгенирить java client получаю следуще.. EmbeddedMyWebService1Stub.java: Код | package mypackage; import oracle.soap.transport.http.OracleSOAPHTTPConnection; import org.apache.soap.encoding.SOAPMappingRegistry; import java.net.URL; import org.apache.soap.rpc.Call; import org.apache.soap.Constants; import java.util.Vector; import org.apache.soap.rpc.Parameter; import org.apache.soap.rpc.Response; import org.apache.soap.Fault; import org.apache.soap.SOAPException; import java.util.Properties; /** * Generated by the Oracle JDeveloper 10g Web Services Stub/Skeleton Generator. * Date Created: Thu May 11 16:49:38 MSD 2006 * WSDL URL: file:/C:/Documents and Settings/klmn/My Documents/JDEV/jdev1012/jdev/mywork/WebTest/Project/src/mypackage/IMyWebService1.wsdl */
public class EmbeddedMyWebService1Stub { public EmbeddedMyWebService1Stub() { m_httpConnection = new OracleSOAPHTTPConnection(); m_smr = new SOAPMappingRegistry(); }
public static void main(String[] args) { try { EmbeddedMyWebService1Stub stub = new EmbeddedMyWebService1Stub(); // Add your own code here. //System.out.println(stub.privet("klmn")); stub.privet("klmn"); } catch(Exception ex) { ex.printStackTrace(); }
}
private String _endpoint = "http://localhost:8988/WebTest-Project-context-root/MyWebService1";
public String getEndpoint() { return _endpoint; }
public void setEndpoint(String endpoint) { _endpoint = endpoint; }
private OracleSOAPHTTPConnection m_httpConnection = null; private SOAPMappingRegistry m_smr = null;
public String privet(String name) throws Exception { String returnVal = null;
URL endpointURL = new URL(_endpoint); Call call = new Call(); call.setSOAPTransport(m_httpConnection); call.setTargetObjectURI("MyWebService1"); call.setMethodName("privet"); call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
Vector params = new Vector(); params.addElement(new Parameter("name", String.class, name, null)); call.setParams(params);
call.setSOAPMappingRegistry(m_smr);
Response response = call.invoke(endpointURL, "");
if (!response.generatedFault()) { Parameter result = response.getReturnValue(); returnVal = (String)result.getValue(); } else { Fault fault = response.getFault(); throw new SOAPException(fault.getFaultCode(), fault.getFaultString()); }
return returnVal; }
public void setMaintainSession(boolean maintainSession) { m_httpConnection.setMaintainSession(maintainSession); }
public boolean getMaintainSession() { return m_httpConnection.getMaintainSession(); }
public void setTransportProperties(Properties props) { m_httpConnection.setProperties(props); }
public Properties getTransportProperties() { return m_httpConnection.getProperties(); } }
|
запускаю вэбсервис Код | 06/05/12 20:09:04 Oracle Application Server Containers for J2EE 10g (10.1.2.0.0) initialized
Ready message received from Oc4jNotifier.
Embedded OC4J startup time: 12578 ms.
The application can be accessed at location:
http://localhost:8988/WebTest-Project-context-root/MyWebService1
06/05/12 20:09:04 Web service MyWebService1 has been started on the embedded server
|
, запускаю EmbeddedMyWebService1Stub.java выводит следущее (там два окошка внизу инфа по компиляции в которых в них написанно) в первом: Код | java.lang.NoClassDefFoundError: and
Exception in thread "main"
|
---- и во вотором окошке: Код | [SOAPException: faultCode=SOAP-ENV:Protocol; msg=Unsupported response content type "text/html", must be: "text/xml". Response was: <HTML><HEAD><TITLE>500 Internal Server Error</TITLE></HEAD><BODY><H1>500 Internal Server Error</H1><PRE>Servlet error: Cannot generate Class: </PRE></BODY></HTML>
]
at org.apache.soap.rpc.Call.getEnvelopeString(Call.java:209)
at org.apache.soap.rpc.Call.invoke(Call.java:268)
at mypackage.EmbeddedMyWebService1Stub.privet(EmbeddedMyWebService1Stub.java:76)
at mypackage.EmbeddedMyWebService1Stub.main(EmbeddedMyWebService1Stub.java:34)
|
ПРИЧЁМ!!! всё тоже самое завускаем на другом компе всё пашет? (может в path что-то не прописанно...не знаю.. вообщем... код скорее всего правильный ... ------------- и ещё если в браузере зайти на http://localhost:8988/WebTest-Project-cont...t/MyWebService1выбрать функцию privet и набить туда слово типа zzz(не важно) браузер напиешт: Код | 500 Internal Server Error
Servlet error: Cannot generate Class:
|
а в логе Jdeveloper покажет: Код | 06/05/12 20:37:36 javax.servlet.ServletException: Cannot generate Class:
06/05/12 20:37:36 at oracle.j2ee.ws.RpcWebService.generateWrapperClass(RpcWebService.java:493)
06/05/12 20:37:36 at oracle.j2ee.ws.RpcWebService.generate(RpcWebService.java:414)
06/05/12 20:37:36 at oracle.j2ee.ws.RpcWebService.getWrapper(RpcWebService.java:532)
06/05/12 20:37:36 at oracle.j2ee.ws.RpcWebService.doGetRequest(RpcWebService.java:631)
06/05/12 20:37:36 at oracle.j2ee.ws.BaseWebService.doGet(BaseWebService.java:1173)
java.lang.NoClassDefFoundError: and
06/05/12 20:37:36 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
06/05/12 20:37:37 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
06/05/12 20:37:37 at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
06/05/12 20:37:37 at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
06/05/12 20:37:37 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:649)
06/05/12 20:37:37 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
06/05/12 20:37:37 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
06/05/12 20:37:37 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
06/05/12 20:37:37 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
06/05/12 20:37:37 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
06/05/12 20:37:37 at java.lang.Thread.run(Thread.java:534)
Exception in thread "main"
|
Это сообщение отредактировал(а) znoit - 12.5.2006, 19:40
|