Есть http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?op=GetCursOnDate При тестировании постманом получаю
У себя в программе получаю пустой ответ: []
Сервис
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceException;
@WebServiceClient(name = "DailyInfo", targetNamespace = "http://web.cbr.ru/", wsdlLocation = "http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx")
public class DailyInfo extends Service {
private final static URL DAILYINFO_WSDL_LOCATION;
private final static WebServiceException DAILYINFO_EXCEPTION;
private final static QName DAILYINFO_QNAME = new QName("http://web.cbr.ru/", "DailyInfo");
static {
URL url = null;
WebServiceException e = null;
try {
url = new URL("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx");
} catch (MalformedURLException ex) {
e = new WebServiceException(ex);
}
DAILYINFO_WSDL_LOCATION = url;
DAILYINFO_EXCEPTION = e;
}
public DailyInfo() {
super(__getWsdlLocation(), DAILYINFO_QNAME);
}
@WebEndpoint(name = "DailyInfoSoap")
public DailyInfoSoap getDailyInfoSoap() {
return super.getPort(new QName("http://web.cbr.ru/", "DailyInfoSoap"), DailyInfoSoap.class);
}
private static URL __getWsdlLocation() {
if (DAILYINFO_EXCEPTION!= null) {
throw DAILYINFO_EXCEPTION;
}
return DAILYINFO_WSDL_LOCATION;
}
}
Интерфейс
import com.sun.xml.ws.runtime.config.ObjectFactory;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
@WebService(name = "DailyInfoSoap", targetNamespace =
"http://web.cbr.ru/")
@XmlSeeAlso({ObjectFactory.class})
public interface DailyInfoSoap {
@WebMethod(operationName = "GetCursOnDate", action =
"http://web.cbr.ru/GetCursOnDate")
@WebResult(name = "GetCursOnDateResult", targetNamespace =
"http://web.cbr.ru/")
@RequestWrapper(localName = "GetCursOnDate", targetNamespace =
"http://web.cbr.ru/", className = "GetCursOnDate")
@ResponseWrapper(localName = "GetCursOnDateResponse", targetNamespace =
"http://web.cbr.ru/", className = "GetCursOnDateResponse")
public GetCursOnDateResponse.GetCursOnDateResult
getCursOnDate(@WebParam(name = "On_date", targetNamespace =
"http://web.cbr.ru/") XMLGregorianCalendar onDate);
}
main
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.util.GregorianCalendar;
public class JavaStudyWS {
public static void main(String[] args) {
testSOAPFromClient();
}
private static void testSOAPFromClient() {
try {
GregorianCalendar gregorianCalendar = new GregorianCalendar(2017, 12, 3);
DatatypeFactory datatypeFactory;
datatypeFactory = DatatypeFactory.newInstance();
XMLGregorianCalendar date = datatypeFactory.newXMLGregorianCalendar(gregorianCalendar);
DailyInfo service1 = new DailyInfo();
DailyInfoSoap port1 = service1.getDailyInfoSoap();
GetCursOnDateResponse.GetCursOnDateResult result =
port1.getCursOnDate(date);
System.out.println(result.getAny().getRows());
} catch (DatatypeConfigurationException e) {
e.printStackTrace();
}
}
}
GetCursOnDate
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"onDate"
})
@XmlRootElement(name = "GetCursOnDate")
public class GetCursOnDate {
@XmlElement(name = "On_date", required = true)
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar onDate;
public XMLGregorianCalendar getOnDate() {
return onDate;
}
public void setOnDate(XMLGregorianCalendar value) {
this.onDate = value;
}
}
GetCursOnDateResponse
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"getCursOnDateResult"})
@XmlRootElement(name = "GetCursOnDateResponse")
public class GetCursOnDateResponse {
@XmlElement(name = "GetCursOnDateResult")
protected GetCursOnDateResponse.GetCursOnDateResult getCursOnDateResult;
public GetCursOnDateResponse.GetCursOnDateResult getGetCursOnDateResult() {
return getCursOnDateResult;
}
public void setGetCursOnDateResult(GetCursOnDateResponse.GetCursOnDateResult value) {
this.getCursOnDateResult = value;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"any"})
public static class GetCursOnDateResult {
@XmlElement(name="diffgram",namespace="urn:schemas-microsoft-com:xml-diffgram-v1")
protected ValuteData any;
public ValuteData getAny() {
return any;
}
public void setAny(ValuteData any) {
this.any = any;
}
}
}
ValuteCursOnDate
@XmlAccessorType(XmlAccessType.FIELD)
public class ValuteCursOnDate {
@XmlElement(name="Vname")
private String name;
@XmlElement(name="Vnom")
private BigDecimal nom;
@XmlElement(name="Vcurs")
private BigDecimal curs;
@XmlElement(name="Vcode")
private int code;
@XmlElement(name="VchCode")
private String chCode;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getNom() {
return nom;
}
public void setNom(BigDecimal nom) {
this.nom = nom;
}
public BigDecimal getCurs() {
return curs;
}
public void setCurs(BigDecimal curs) {
this.curs = curs;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getChCode() {
return chCode;
}
public void setChCode(String chCode) {
this.chCode = chCode;
}
}
ValuteData
@XmlType
@XmlAccessorType(XmlAccessType.FIELD)
public class ValuteData {
@XmlElementWrapper(name="ValuteData")
@XmlElement(name="ValuteCursOnDate")
private List<ValuteCursOnDate> rows = new ArrayList<ValuteCursOnDate>();
public List<ValuteCursOnDate> getRows() {
return rows;
}
public void setRows(List<ValuteCursOnDate> rows) {
this.rows = rows;
}
}
Ошибка в дате,нужно выбрать 11 месяц GregorianCalendar gregorianCalendar = new GregorianCalendar(2017, 12, 3);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть проблема с одной олимпиадной задачей, но решить мне её нужно на 100Задача находится https://www
Для реализации приложения требуется получить GSM Cell ID, к которой подключено устройство, приложение не нуждается в мощном интерфейсе, поэтому...
Не отображается название процесса в logcat, процесс устройства эмулятора отображаетсяИспользую Android Studio 3