了解wsdl服务的Java类 - c#

我试图用Java编写wsdl Web服务的测试代码。这段代码为我返回了一些变量值,必须下订单。在这段代码中,我在C#上等效,但是我不明白如何在Java中进行转换。这是我的Java代码:

 package betdaqclient; 
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List; 
 import javax.xml.bind.JAXBElement;
 public class test 
 {
public static void main(String[] args) 
{
ExternalApiHeader externalAPIHeader = new ExternalApiHeader();
externalAPIHeader.languageCode = "en";
externalAPIHeader.username = "myusername";
externalAPIHeader.password = "mypassword";
externalAPIHeader.version = new BigDecimal ("2.0"); 

ReadOnlyService_Service ro = new ReadOnlyService_Service();
ReadOnlyService readOnlyService = ro.getReadOnlyService();
SecureService_Service ss = new SecureService_Service();
SecureService secureService = ss.getSecureService(); 


GetAccountBalancesRequest getAccountBalanceRequest = new GetAccountBalancesRequest();
GetAccountBalancesResponse2 getAccountBalanceResponse = secureService.getAccountBalances(getAccountBalanceRequest, externalAPIHeader);
System.out.printf("%n%nUser  : "  + externalAPIHeader.username);
System.out.printf("%nBalance  : " + getAccountBalanceResponse.balance.toString()); 
System.out.printf("%nExposure : " + getAccountBalanceResponse.exposure.toString()); 
System.out.printf("%nAvailable: " + getAccountBalanceResponse.availableFunds.toString()+"%n");



SimpleOrderRequest bet = new SimpleOrderRequest();

bet.selectionId = (long) IdMarket;

bet.polarity = (byte) 1 ; //<-----BACK?

bet.stake = new BigDecimal("1.00") ;

bet.price = new BigDecimal("1.01") ;
bet.cancelOnInRunning = true ; 





PlaceOrdersNoReceiptRequest request = new PlaceOrdersNoReceiptRequest();

/* Lacking Code */





 PlaceOrdersNoReceiptResponse2 response = secureService.placeOrdersNoReceipt(request,externalAPIHeader);


}
} 

我想我的bet必须转换为列表,然后传递给request。这是我在示例中找到的C#代码:

    public long[] PlaceOrdersNoReceipt(long selectionId, byte polarity, decimal amount

        , decimal odds, byte resetCount)

    {

        SimpleOrderRequest order = new SimpleOrderRequest();

        order.SelectionId = selectionId;

        order.Polarity = polarity;

        order.Stake = amount;

        order.Price = odds;

        order.ExpectedSelectionResetCount = resetCount;





        PlaceOrdersNoReceiptRequest request = new PlaceOrdersNoReceiptRequest();

        request.Orders = new SimpleOrderRequest[1] {order};





        PlaceOrdersNoReceiptResponse response = _proxy.PlaceOrdersNoReceipt(request);

        if (response.ReturnStatus.Code != 0)

            throw new Exception(response.ReturnStatus.Description);





        return response.OrderHandles;

    }

这是从wsdl构建的类的定义:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PlaceOrdersNoReceiptRequest", propOrder = {
"orders",
"wantAllOrNothingBehaviour"
})
public class PlaceOrdersNoReceiptRequest {

@XmlElement(name = "Orders", required = true)
protected PlaceOrdersNoReceiptRequest.Orders orders;
@XmlElement(name = "WantAllOrNothingBehaviour")
protected boolean wantAllOrNothingBehaviour;

public PlaceOrdersNoReceiptRequest.Orders getOrders() {return orders;}


public void setOrders(PlaceOrdersNoReceiptRequest.Orders value) {this.orders = value;}


public boolean isWantAllOrNothingBehaviour() { return wantAllOrNothingBehaviour; }
public void setWantAllOrNothingBehaviour(boolean value)    {this.wantAllOrNothingBehaviour = value;}


@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"order"})
public static class Orders {

    @XmlElement(name = "Order", required = true)
    protected List<SimpleOrderRequest> order;
    public List<SimpleOrderRequest> getOrder() {
        if (order == null) {
            order = new ArrayList<SimpleOrderRequest>();
        }
        return this.order;
    }

}

}

问题是我如何将类betSimpleOrderRequest元素转换为类requestPlaceOrderNoRecepeit
可能是一个非常愚蠢的问题,但是我是Java编程的新手。

参考方案

缺少代码应为

PlaceOrdersNoReceiptRequest.Orders orders = new PlaceOrdersNoReceiptRequest.Orders();
orders.getOrder().add(bet);

PlaceOrdersNoReceiptRequest request = new PlaceOrdersNoReceiptRequest();
request.setOrders(orders);

Java Double与BigDecimal - java

我正在查看一些使用双精度变量来存储(360-359.9998779296875)结果为0.0001220703125的代码。 double变量将其存储为-1.220703125E-4。当我使用BigDecimal时,其存储为0.0001220703125。为什么将它双重存储为-1.220703125E-4? 参考方案 我不会在这里提及精度问题,而只会提及数字…

我正在尝试从用户那里获取输入并将其传输到文本文件 - java

我正在尝试编写一个聊天机器人,以便从用户那里学到答案,为此,我需要将答案保存到一个文本文件中,稍后再阅读。在代码中,它允许我编写问题,然后不创建文本文件并给出错误。有人可以告诉我我在做什么错。谢谢所有帮助。public static void main(String[] args) { // TODO Auto-generated method stub S…

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

Java-父类正在从子类中调用方法? - java

抱歉,我还是编码的新手,可能还没有掌握所有术语。希望您仍然能理解我的问题。我想得到的输出是:"Cost for Parent is: 77.77" "Cost for Child is: 33.33" 但是,我得到这个:"Cost for Parent is: 33.33" "Cost f…

Java Map,如何将UTF-8字符串正确放置到地图? - java

我有一个地图,LinkedHashMap更确切地说。我想在上面放一个字符串对象。然后,我读取此值以查看实际存储的内容。字符串本身具有非ASCII字符(西里尔文,韩文等)。将其放到地图上然后阅读后,这些字符将替换为??? s。一些代码:Map obj = new LinkedHashMap(); System.out.println("name: &…