Я запускаю wsimport
из cmd с моими привязками данных в файле bindings.xml
. В основном я пытаюсь переопределить привязку по умолчанию для типа схемы «datetime», чтобы сгенерировать «java.util.Date» вместо «XMLGregorianCalendar».
Вот команда, которую я использую.
wsimport -keep -verbose -extension -b bindings.xml -wsdllocation http://localhost/wsdl/API http://localhost:8080/cc/API?WSDL -d C:/Users/ab/Desktop/test
Мой Bindings.xml выглядит так.
<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:
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 создает файлы webService вместе с Adapter1.class. Однако ответ содержит следующую ошибку.
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? Я также пытался сохранить файл в корне, а не в папке, но это тоже вызывает подобное исключение.