2012-01-25 2 views
0

java에서 wsdl 웹 서비스의 테스트 코드를 작성하려고합니다. 이 코드는 일부 변수 값을 반환하고 주문해야합니다. 이 코드 중에서 C#에서 en을 사용할 수 있지만 java로 변환하는 방법을 이해하지 못합니다. 내 bet이 목록에서 변환 한 후 request에 전달되어야한다는 생각wsdl 서비스의 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); 


} 
} 

: 이것은 자바에서 내 코드입니다.

@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; 
    } 

} 

} 

문제는 내가의 bet 요소를 변환해야하는 방법이다 :

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에서 내장 클래스의 정의입니다 : 이것은 내가 예에서 발견 한 C#에서 코드입니다 thee 클래스 SimpleOrderRequest에 의 request에? 매우 바보 같은 질문 일지 모르지만 저는 자바 프로그래밍의 초보자입니다.

+0

는 [당신이 시도 가지고 있어야한다 부족 http://stackoverflow.com/questions/858572/how-to-make-a-new-list-in-java](http:/ /stackoverflow.com/questions/858572/how-to-make-a-new-list-in-java) ... request.Orders = Arrays.asList (새 SimpleOrderRequest [] {bet})? –

답변

1

코드가

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

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