Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

インスタンスを生成できません

はじめまして。ororoと申します。

現在、日本オラクルのWebサービス作成ページを参考にしながら郵便番号による住所検索のWebサービス作成を試みています。
http://otndnld.oracle.co.jp/beginner/9ias/4_3/index.html

しかし、Webサービスクライアントの作成段階でZipcodeServiceDelegateのインスタンスが作成できないというエラーが生じてつまずいています。

どなたかご教授お願いいたします。

【ZipcodeClient.jsp】
<%@ page language="java" contentType="text/html; charset=windows-31j"
    pageEncoding="windows-31j"%>
<%@ page import="mypackage1.*"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Webサービスを利用した郵便番号検索</title>
</head>
<body>
<center>
<form action="ZipcodeClient.jsp" name="form1">
郵便番号:
<input type="text" name="zipcode" size="7" maxlength="7" />
<input type="radio" name="type" value="new" checked="checked" />
新 (7桁)
<input type="radio" name="type" value="old" />
旧 (3桁)
<input type="submit" value="検索" />
</form>

<%
  String zipcode_str = request.getParameter("zipcode");
  String type = request.getParameter("type");
  int zipcode = 0;

  if ( zipcode_str != null) {
    try {
      zipcode = Integer.parseInt(zipcode_str);
    } catch (NumberFormatException nfe) {
      zipcode = 0;
    }
    
    ZipcodeServiceDelegate stub = new ZipcodeServiceDelegate();   //ここで「型ZipcodeServiceDelegateのインスタンスを生成できません」のエラー
    ZipcodeBean[] zipcodeBeans = null;    

    if ( type.equals("new") ) {
      zipcodeBeans = stub.findByZipcode(zipcode); //ここでも「型の不一致:List<ZipcodeBean>からZipcodeBean[]には変換できません」のエラー
    } else if ( type.equals("old") ) {
      zipcodeBeans = stub.findByOldZipcode(zipcode); //ここでも「型の不一致:List<ZipcodeBean>からZipcodeBean[]には変換できません」のエラー
    }
%>
<table border="0">
<tr bgcolor="#cccccc">
<th>郵便番号</th>
<th>旧番号</th>
<th>都道府県</th>
<th>市区町村</th>
<th>町域</th>
</tr>
<%
    for (int i=0; i<zipcodeBeans.length; i++) {
%>
<tr>
<td><%= zipcodeBeans[i].getZipcode() %></td>
<td><%= zipcodeBeans[i].getOldZipcode() %></td>
<td><%= zipcodeBeans[i].getPrefecture() %></td>
<td><%= zipcodeBeans[i].getCity() %></td>
<td><%= zipcodeBeans[i].getTown() %></td>
</tr>
<%
    }
  }
%>
</table>
</center>
</body>
</html>

【ZipcodeServiceDelegate.java】
package mypackage1;

import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;

@WebService(name = "ZipcodeServiceDelegate", targetNamespace = "http://mypackage1/")
public interface ZipcodeServiceDelegate {

    @WebMethod
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "findByZipcode", targetNamespace = "http://mypackage1/", className = "mypackage1.FindByZipcode")
    @ResponseWrapper(localName = "findByZipcodeResponse", targetNamespace = "http://mypackage1/", className = "mypackage1.FindByZipcodeResponse")
    public List<ZipcodeBean> findByZipcode(
            @WebParam(name = "arg0", targetNamespace = "")
            int arg0);

    @WebMethod
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "findByOldZipcode", targetNamespace = "http://mypackage1/", className = "mypackage1.FindByOldZipcode")
    @ResponseWrapper(localName = "findByOldZipcodeResponse", targetNamespace = "http://mypackage1/", className = "mypackage1.FindByOldZipcodeResponse")
    public List<ZipcodeBean> findByOldZipcode(
            @WebParam(name = "arg0", targetNamespace = "")
            int arg0);

}

Eclipseを使いテストしているので、参考ページとは実行環境、コードがやや異なると思います。
長くなり申し訳ないです。宜しくお願いします。

5

回答

12203

閲覧

5件の回答

評価

0

インスタンスって、どういうものか知ってる?
あまり基本をすっ飛ばして、大きなものを試さないほうがいい。

評価

0

オブジェクトとほぼ同義。
クラス宣言したものを利用する中身という風に理解しています。

ただ、$さんの指摘についてはその通りで、勉強不足なままですが、色々と進めています。

インスタンスを生成できないのはどんな原因が考えられるのでしょうか?
この情報から挙げられることがあれば教えて下さい。

評価

0

> オブジェクトとほぼ同義。
うん「ほぼ」。
ではオブジェクトの意味はわかりますか?
> クラス宣言したものを利用する中身
なんとなく理解はしているのだと認識
ぜんぜん違うけど
> インスタンスを生成できないのはどんな原因が考えられるのでしょうか
ZipcodeServiceDelegateてどうみてもインターフェースデスヨ
インスタンスなんて生成できないのデスヨ


評価

0

>クラス宣言したものを利用する中身という風に理解しています。
言葉に違和感は覚えるけどまあいいか。
では、クラスとインターフェースの違いを理解してないのかな。

評価

0

てんこサン、$サン

ありがとうございます。

クラスは入れ物ですよね。オブジェクトの属性を定義する箱ということでしょうか。
インターフェースは…

教えて頂いて調べてみると、どこにもめちゃめちゃ書いてありますね。
当然インスタンスが生成できないことが理解できました。
失礼致しました。


質問から6ヶ月以上経過しているので、回答を書き込むことはできません。