peringatan yang tepat: tidak ditemukan pemroses anotasi

Saya baru saja belajar sendiri tentang layanan web dan mencoba menjalankan helloWorld. Saya pikir untuk mengatur semua layanan web saya perlu menjalankan apt.

Saya menjalankannya seperti ini:

apt HelloImpl.java -classpath /<path>/jsr181-api.jar

Tapi saya mendapat peringatan (lihat di bawah). Apakah saya perlu menentukan pemroses anotasi juga? Saya pikir perintah apt seharusnya menghasilkan beberapa file tetapi itu tidak terjadi (hanya menghasilkan file .class). Terima kasih untuk bantuannya.

Peringatan:

warning: No annotation processors found but annotations present.
1 warning

Kode:

package server;

import javax.jws.WebService;

@WebService
public class HelloImpl {

  /**
   * @param name
   * @return Say hello to the person.
   */
   public String sayHello(String name) {
     return "Hello, " + name + "!";
   }
}

Pertanyaan Bonus: Apa yang dilakukan apt? Saya berasumsi bahwa itu memanggil javac? Apakah ini seharusnya juga memanggil pemroses anotasi?

Pembaruan: tutorial yang saya ikuti mengatakan :

The next step is to run apt on the above Java code, resulting in several artifacts:

HelloServiceImpl.wsdl
schema1.xsd
classes/server/HelloImpl.class
classes/server/jaxrpc/SayHello.class
classes/server/jaxrpc/SayHelloResponse.class
classes/server/jaxrpc/SayHello.java
classes/server/jaxrpc/SayHelloResponse.java

Saya pikir inilah yang seharusnya dihasilkan (dengan asumsi saya memberikan argumen yang benar). Namun saya pikir saya harus meneruskannya ke pemroses anotasi (?). Saya sebenarnya hanya ingin menggunakan default (pemroses anotasi layanan web).

Pembaruan 2: Mungkin sebaiknya saya menggunakan asant atau wsgen? Saya mencarinya tetapi saya tidak memiliki keduanya di mesin saya.. Sesuatu yang perlu diperhatikan.. Mungkin tutorial yang saya/sedang gunakan salah. Berikut ini tautan ke referensi asant: http://java.sun.com/webservices/docs/2.0/tutorial/doc/JAXWS3.html


person sixtyfootersdude    schedule 19.01.2010    source sumber


Jawaban (1)


apt bukan kompiler. Ia memproses file sumber dan memanggil pemroses anotasi sesuai kebutuhan.

Mengutip Memulai...

Utilitas baris perintah apt, alat pemrosesan anotasi, menemukan dan mengeksekusi pemroses anotasi berdasarkan anotasi yang ada dalam kumpulan file sumber tertentu yang sedang diperiksa.

Anda mungkin menjalankan apt pada file sumber untuk menghasilkan file sumber atau file metadata baru pada waktu pembuatan. Anda dapat menjalankan apt melalui javac .

Anotasi di Java dapat memiliki berbagai tujuan. Tidak semuanya perlu diproses pada waktu pembuatan. Beberapa berfungsi sebagai penanda yang dapat digunakan melalui instrumentasi untuk mengubah kelas pada waktu muat. Sebagian besar hanya digunakan pada penanda runtime yang dapat digunakan oleh alat introspeksi (seperti banyak container dan injektor ketergantungan). Cara tepatnya Anda menggunakan anotasi bergantung pada API asalnya. Tutorial JEE5 menjelaskan cara menggunakan anotasi WebService .

person McDowell    schedule 19.01.2010