Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка java.lang... webservise, вызов webservise из класса 
:(
    Опции темы
znoit
Дата 11.5.2006, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 11.5.2006

Репутация: нет
Всего: нет



Код

package mypackage;

public class TestClass 
{
  public TestClass()
  {
  }
  /**
   * 
   * @webmethod 
   */
  public String preved(String name)
  {
    return "privet "+name;
  }
}


есть такой java класс на осонове него создан webservice и из вэб сервиса сгенерён класс (Java Client) обращающийся к вэбсервису вот main:
Код

 public static void main(String[] args)
  {
    try
    {
      EmbeddedMyWebService1Stub stub = new EmbeddedMyWebService1Stub();
      // Add your own code here.
      System.out.println(stub.preved("kjlklj"));
    }
    catch(Exception ex)
    {
      ex.printStackTrace();
    }

  }

------------- запускаю вебсервис всё нормально в браузере виден а при запуске 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.preved(EmbeddedMyWebService1Stub.java:74)

    at mypackage.EmbeddedMyWebService1Stub.main(EmbeddedMyWebService1Stub.java:33)
  

Это сообщение отредактировал(а) znoit - 11.5.2006, 17:15
PM MAIL   Вверх
w1nd
Дата 11.5.2006, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 7
Всего: 54



Я думаю, "java.lang.NoClassDefFoundError" - ключ ко всему. Какой класс не находится? Приведите stack trace полностью. 


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
pvo
Дата 11.5.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 7.10.2005
Где: Мск

Репутация: 5
Всего: 7



znoit, если все делается с помощью axis и веб-сервис делается с помощью переименования файла *.java в *.jws, то это известная бага. Если класс не помещать в пакет mypackage, а поместить его в default package, то все будет чики-пики.

Т.е. сделать нужно так:

Код

public class TestClass 
{
  public TestClass()
  {
  }
  /**
   * 
   * @webmethod 
   */
  public String preved(String name)
  {
    return "privet "+name;
  }
}



ЗЫ. Про средства, используемые для создания web service, писать очень даже нелишне(как и приводить стектрейсы), если, конечно, есть желание быстро получить ответ.
ЗЗЫ. А еще - гугл рулит smile 
PM MAIL ICQ   Вверх
znoit
Дата 12.5.2006, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 11.5.2006

Репутация: нет
Всего: нет



создаю всё это дело в 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 &quot;text/html&quot;, must be: &quot;text/xml&quot;. Response was:
&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;500 Internal Server Error&lt;/TITLE&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;H1&gt;500 Internal Server Error&lt;/H1&gt;&lt;PRE&gt;Servlet error: Cannot generate Class: &lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;

]

    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
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.