Tomcat uygulama sunucusu kullanarak Netbeans'te bir web service client yapmaya çalışıyorum. Glassfish'te yaptığım yöntemin aynısını Tomcat'te denedim fakat maalesef başarılı olamadım. (https://netbeans.org/kb/docs/websvc/client.html). Sorunum şu: Webservis'te daha önceden tanımladığım bir fonksiyonu client'ta çağırırken sağ tıklayıp insert web service operation'u seçip buradan da istediğim fonksiyonu seçiyorum. Tamam'a tıkladıktan sonra Netbeans benim çağırabileceğim şekilde fonksiyonu yazıyor. Bu fonksiyon Glassfish'te çalışırken şöyle:

private DocumentSummary checkTextBodyV2(java.lang.String bodyText) 
    {
        com.cdyne.ws.CheckSoap port = service.getCheckSoap();
        return port.checkTextBodyV2(bodyText);
    }

Tomcat veya TomEE'de ise şöyle bir kod parçası geliyor(fonksiyon değil)

try { // Call Web Service Operation
            com.mycompany.webserviceheroku_tc.Ws2 port = service.getWs2Port();
            // TODO initialize WS operation arguments here
            java.lang.String name = "";
            // TODO process result here
            java.lang.String result = port.hello(name);
            out.println("Result = "+result);
        } catch (Exception ex) {
            // TODO handle custom exceptions here
        }

Bunu kullanmaya çalışıncada hata alıyorum:

HTTP Status 500 - Error instantiating servlet class com.mycompany.webserviceheroku_tc_client.NewServlet

type Exception report

message Error instantiating servlet class com.mycompany.webserviceheroku_tc_client.NewServlet

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class com.mycompany.webserviceheroku_tc_client.NewServlet
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:722)
root cause

javax.naming.NameNotFoundException: Name [com.mycompany.webserviceheroku_tc_client.NewServlet/service] is not bound in this Context. Unable to find [com.mycompany.webserviceheroku_tc_client.NewServlet].
    org.apache.naming.NamingContext.lookup(NamingContext.java:820)
    org.apache.naming.NamingContext.lookup(NamingContext.java:168)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.34 logs.

Apache Tomcat/7.0.34

Acaba eksik bir kütüphane veya başka bir şey mi var? Netbeans üzerinde Glassfish'le herşey yolundayken Tomcat ile hiç bir şey yapamıyorum.

soruldu: 03 Haz '13, 08:40

ekremk's gravatar image

ekremk
421243436
cevap kabul oranı: 7%

değiştirildi: 07 Ağu '13, 09:23

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

SOAP kullanıyorsanız, JAX-WS kütüphanesini projenize eklemeniz gerekmektedir. Fakat hatırladığım kadarıyla client tarafında webservis metodlarını görüyorsanız servisi sürükle bırak ile sınıf içinde oto generate edebilirsiniz.

(04 Haz '13, 11:02) Turgay Can Turgay%20Can's gravatar image

sürükle bırak yapınca da aynısı oluyor maalesef

(04 Haz '13, 11:56) ekremk ekremk's gravatar image

Bende standart sizin gibi yapmaya çalıştığımda aynı hatayı aldım. Sebebi ise WbService'ın adresinin yanlış tanımlanması. Direkt proje olarka gösterdiğinizde default localhost alıyor. Bunun yerine Client projeniz üzerinde sağ tuş ile açılan menüden Web Service Client'ı seçiniz. http://localhost:8080/NewWebService/NewWebService?wsdl şöyle bir url veriyor bu hatalı, bunun yerine Biglisayarınızın adını System özelliklerindne öğreniniz ve WSDL url'ini http://bilgisayarınızınadi:8080/NewWebService/NewWebService?wsdl şeklinde düzenleyip, WSDL and Client Location kısmında WSDL URL kısmına yazıp test ediniz.

Test etmeden önce WebService 'inizi uygulama sunucusu üzerinde deploy ediniz.

Normalde WebService'i Test ettiğinizde bu tür problem ile karşılaşılmıyordu fakat test ederkende hata veriyor. Ben yukarıdaki gibi üstesinden geldim.

Tomcat ile bu tür bir hata almadım fakat GlassFish AS üzerinde aynı hatayı aldım ve çözümü yukarıdaki gibi.

Kolay gelsin.

permanent link

cevaplandı: 04 Haz '13, 16:12

Turgay%20Can's gravatar image

Turgay Can
8.3k63798
cevap kabul oranı: 18%

değiştirildi: 04 Haz '13, 16:45

bişe anlayamadım. bilgisayarın adı ile localhost arasında ne fark varki?

(27 Haz '13, 10:28) kodmanyagha kodmanyagha's gravatar image

Aplikasyon sunucusu üzerinde tanımlanmış URL ile aynı olma zorunluluğu var.

(27 Haz '13, 15:22) Turgay Can Turgay%20Can's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,076
×47
×39

Soruldu: 03 Haz '13, 08:40

Görüntüleme: 1,214 kez

Son güncelleme: 07 Ağu '13, 09:23

powered by BitNami OSQA