wsimport
をcmdから実行して、bindings.xml
ファイルのdataBindingsを実行しています。基本的には、 "datetime"スキーマタイプのデフォルトバインディングを "XMLGregorianCalendar"の代わりに "java.util.Date"を生成するようにオーバーライドしようとしています。追加のJAXBバインディングを使用するwsimportでのエラー
ここに私が使用するコマンドがあります。
wsimport -keep -verbose -extension -b bindings.xml -wsdllocation http://localhost/wsdl/API http://localhost:8080/cc/API?WSDL -d C:/Users/ab/Desktop/test
My Bindings.xmlはこのようになります。
package adapter;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.xml.bind.DatatypeConverter;
public class DateAdapter
{
public static Date unmarshal(String paramString)
{
return DatatypeConverter.parseDate(paramString).getTime();
}
public static String marshal(Date paramDate)
{
Calendar localCalendar = GregorianCalendar.getInstance();
localCalendar.setTime(paramDate);
return DatatypeConverter.printDateTime(localCalendar);
}
}
実行wsimportのはAdapter1.classとともにWebサービスファイルを生成します。
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.1" >
<globalBindings>
<javaType name="java.util.Date" xmlType="xs:dateTime"
parseMethod="adapter.DateAdapter.marshal"
printMethod="adapter.DateAdapter.unmarshal" />
</globalBindings>
</bindings>
は、ここに私のDateAdapterクラスです。ただし、応答には次のエラーが含まれています。
C:\Users\ab\Desktop\test\org\w3\_2001\xmlschema\Adapter1.java:13: package a
dapter does not exist
return (adapter.DateAdapter.marshal(value));
さて、私のDateAdapter.classは私からwsimportのを実行している同じ場所にフォルダ「アダプタ」に位置しています。
なぜ私はDateAdapterを読むことができないのですか?私はまた、フォルダではなくルートにファイルを保存しようとしましたが、同様の例外がスローされます。