質問するログイン新規登録

Q&A

解決済

1回答

1196閲覧

Eclipseでsoapapi を使ったプログラムでmain がエラーになる。

todasan

総合スコア101

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SOAP

SOAP(Simple Object Access Protocol)はウェブサービス実装においての構造化された情報をやり取りするためのプロトコル規定です。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2025/10/29 01:18

編集2025/10/29 05:54

0

0

実現したいこと

javaをeclipseの環境で動作させています。以下のコードについて、エラーが発生します。

・soap_api_login

java

1import javax.xml.soap.MessageFactory; 2import javax.xml.soap.SOAPBody; 3import javax.xml.soap.SOAPConnection; 4import javax.xml.soap.SOAPConnectionFactory; 5import javax.xml.soap.SOAPElement; 6import javax.xml.soap.SOAPEnvelope; 7import javax.xml.soap.SOAPMessage; 8import javax.xml.soap.SOAPPart; 9 10public class soap_api_login { 11 private static final String GAROON_URL = "aaaaaaaaaaaaaaaa"; 12 private static final String USERNAME = "bbbbb"; 13 private static final String PASSWORD = "ccccc"; 14 15 public static void main(String[] args) { 16 try { 17 SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); 18 SOAPConnection soapConnection = soapConnectionFactory.createConnection(); 19 20 // リクエスト送信 21 SOAPMessage request = createSOAPRequest(); 22 SOAPMessage response = soapConnection.call(request, GAROON_URL); 23 24 System.out.println("=== Response ==="); 25 response.writeTo(System.out); 26 System.out.println(); 27 28 soapConnection.close(); 29 } catch (Exception e) { 30 e.printStackTrace(); 31 } 32 } 33 34 private static SOAPMessage createSOAPRequest() throws Exception { 35 MessageFactory messageFactory = MessageFactory.newInstance(); 36 SOAPMessage soapMessage = messageFactory.createMessage(); 37 SOAPPart soapPart = soapMessage.getSOAPPart(); 38 39 String serverURI = "http://wsdl.cybozu.co.jp/base/2008"; 40 41 // SOAP Envelope 42 SOAPEnvelope envelope = soapPart.getEnvelope(); 43 envelope.addNamespaceDeclaration("base", serverURI); 44 45 // SOAP Body 46 SOAPBody soapBody = envelope.getBody(); 47 SOAPElement auth = soapBody.addChildElement("BaseAuthenticate", "base"); 48 SOAPElement login = auth.addChildElement("login_name"); 49 login.addTextNode(USERNAME); 50 SOAPElement password = auth.addChildElement("password"); 51 password.addTextNode(PASSWORD); 52 53 soapMessage.saveChanges(); 54 55 System.out.println("Request:"); 56 soapMessage.writeTo(System.out); 57 System.out.println(); 58 59 return soapMessage; 60 } 61}

エラーは以下のエラーです。
Exception in thread "main" java.lang.Error: Unresolved compilation problem:

at baroon_test_aoap_api.soap_api_login.main(soap_api_login.java:15)

プロンプトで実行すると、javax.xml.soapが存在しないと出ます。
C:\Users\takeshi_matuda\src_code_result\otameshi_jisshi_java\baroon_test_aoap_api\src\baroon_test_aoap_api>javac soap_api_login.java
soap_api_login.java:1: エラー: パッケージjavax.xml.soapは存在しません
import javax.xml.soap.MessageFactory;

イメージ説明

java7の環境でビルド、ライブラリーの設定もjava7にしています。java7ならjavax.xml.soapが
あるはずですが、以上のようなエラーが出ます。ハローワールドのようなプログラムを
実行ができています。何か解決方法が分かれば、お聞きしてもよろしいですか。

発生している問題・分からないこと

質問に詳細を記載した。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

質問に詳細を記載した。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答1

0

ベストアンサー

vscodeで環境を作成して、import javax.xml.soapを使わず、java7を環境変数に
指定したら、開発が進める事ができたので、解決にします。

投稿2025/10/29 08:04

todasan

総合スコア101

YT0014

2025/10/29 12:32

Eclipseでも、同様に、java7でのコンパイルを指定すれば良いのでは?
todasan

2025/10/29 22:51

YT0014 さん java7でビルド、コンパイル、ライブラリの指定をしてもなぜかできませんでした。
YT0014

2025/10/29 23:29

>java7でビルド、コンパイル、ライブラリの指定 これは、環境変数に設定したのと同一の環境ですか? Eclipseの場合、内部の専用環境がデフォルトですが
YT0014

2025/10/29 23:35

あぁ、packageがないから、エラーになっている可能性があるのか
todasan

2025/10/31 02:03

packageは確認して、ありましたが、なぜかできなかったです。
YT0014

2025/10/31 10:07

意味が違います ソースコードにpackage宣言がないために、エラーを起こしているのでは、ということです エラーメッセージにも、baroon_test_aoap_api.soap_api_login とあるように、ソースコードが置かれている場所から、baroon_test_aoap_api パッケージの下に soap_api_login クラスが存在していると解釈されています なので、先頭行に、以下を足してみて下さい package baroon_test_aoap_api;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問