Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / web сервис. Спихните с граблей пожалуйста. / 4 сообщений из 4, страница 1 из 1
11.09.2012, 21:10:50
    #37953415
senin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web сервис. Спихните с граблей пожалуйста.
есть класс (BiddingMonitoring) полученный из wdsl
включен в проект
создаю объект (исходник ниже), вызываю метод сервиса, получаю ошибку.
Не то удивительно что ошибку при обращении к сервису, а то что вместо цивилизованного сообщения наступает разрыв мозга и приходит не xml а text/plain

поскольку я далеко не первый пользователь сервиса, какая-то грубая ошибка у меня (

попутный вопрос - после UnsupportedMediaException как/чем достать ответ сервиса ???

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/plain; charset=utf-8 Supported ones are: [application/soap+xml]
	at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:284)
	at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:118)
	at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:278)
	at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:180)
	at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83)
	at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)
	at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
	at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
	at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
	at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
	at com.sun.xml.internal.ws.client.Stub.process(Stub.java:211)
	at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:124)
	at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98)
	at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
	at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
	at $Proxy33.setBiddingInvitation(Unknown Source)
	at msoap.MSoap.main(MSoap.java:147)
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package msoap;

import Interfax.Application;
import Interfax.ArbitrManager;
import Interfax.ArrayOfLot;
import Interfax.Attach;
import Interfax.BiddingInvitationType;
import Interfax.BiddingMonitoring;
import Interfax.BiddingMonitoringSoap;
import Interfax.CloseForm;
import Interfax.Debtor;
import Interfax.DebtorCompany;
import Interfax.DebtorPerson;
import Interfax.ErrorResult;
import Interfax.FormPrice;
import Interfax.LegalCase;
import Interfax.OpenForm;
import Interfax.RequestResult;
import Interfax.SuccessResult;
import Interfax.TradeInfo;
import Interfax.TradeOrganizer;
import Interfax.TradeOrganizerCompany;
import Interfax.TradeOrganizerPerson;
import Interfax.TradeType;
import java.net.Authenticator;
import java.util.GregorianCalendar;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.ws.Service;

/**
 *
 * @author Андрей
 */
public class MSoap {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws DatatypeConfigurationException {
        Authenticator.setDefault(new SimpleAuthenticator(Params.getWebUser(), Params.getWebPass()));
        BiddingMonitoring biddingMonitoring = new BiddingMonitoring();
        
        BiddingMonitoringSoap biddingMonitoringSoap = biddingMonitoring.getBiddingMonitoringSoap12();

        BiddingInvitationType biddingInvitation = new BiddingInvitationType();
        ArbitrManager arbitrManager = new ArbitrManager();
        arbitrManager.setFirstName("Иван");
        arbitrManager.setINN("000000000000");
        arbitrManager.setLastName("Драга");
        arbitrManager.setMiddleName("");
        arbitrManager.setRegNum("77888965555");
        arbitrManager.setSROName("Тестовое сро");

        biddingInvitation.setArbitrManager(arbitrManager);

        Debtor debtor = new Debtor();
        DebtorCompany debtorCompany;
        debtorCompany = new DebtorCompany();
        debtorCompany.setFullName("Полное наименование тестовой комп");
        debtorCompany.setINN("8888888888");
        debtorCompany.setShortName("7888888");
        debtorCompany.setShortName("тест комп");
        debtor.setDebtorCompany(debtorCompany);
        DebtorPerson debtorPerson;
        debtorPerson = new DebtorPerson();
        debtorPerson.setFirstName("Мигель");
        debtorPerson.setINN("789654123");
        debtorPerson.setLastName("Сервантес");
        debtorPerson.setMiddleName("Y");
        debtor.setDebtorPerson(debtorPerson);
        biddingInvitation.setDebtor(debtor);

        LegalCase legalCase = new LegalCase();
        legalCase.setBase("так надо");
        legalCase.setCaseNumber("45/98");
        legalCase.setCourtName("Мос обл суд");
        biddingInvitation.setLegalCase(legalCase);

        biddingInvitation.setTradeId("идентикатор1");

        TradeInfo tradeInfo = new TradeInfo();
        Application application = new Application();
        application.setRules("правила здесь");
        XMLGregorianCalendar timeBegin = DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar());
        timeBegin.setYear(2002);
        timeBegin.setMonth(11);
        timeBegin.setDay(1);
        timeBegin.setTime(10, 0, 0);
        timeBegin.setTimezone(3);
        application.setTimeBegin(timeBegin);
        XMLGregorianCalendar timeEnd = DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar());
        timeEnd.setYear(2002);
        timeEnd.setMonth(11);
        timeEnd.setDay(1);
        timeEnd.setTime(10, 0, 0);
        timeEnd.setTimezone(3);
        application.setTimeEnd(timeEnd);
        tradeInfo.setApplication(application);
        Attach attach = new Attach();
        attach.setFileName("fff.doc");
        attach.setType(".doc");
        attach.setBlob("tttttttttttttttt".getBytes());
        tradeInfo.setAttach(attach);
        tradeInfo.setAuctionType(TradeType.OPEN_AUCTION);
        CloseForm closeForm = new CloseForm();
        closeForm.setTimeResult(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));
        tradeInfo.setCloseForm(closeForm);
        tradeInfo.setConcours("песни и пляски");
        tradeInfo.setDatePublishEFIR(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));
        tradeInfo.setFormPrice(FormPrice.OPEN_FORM);
        ArrayOfLot lotList = new ArrayOfLot();
        tradeInfo.setLotList(lotList);
        OpenForm openForm = new OpenForm();
        openForm.setTimeBegin(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));
        tradeInfo.setOpenForm(openForm);
        tradeInfo.setPayments("payments");
        tradeInfo.setSaleAgreement("agreement");

        biddingInvitation.setTradeInfo(tradeInfo);

        TradeOrganizer tradeOrganizer;
        tradeOrganizer = new TradeOrganizer();
        TradeOrganizerCompany tradeOrganizerCompany=new TradeOrganizerCompany();
        tradeOrganizer.setTradeOrganizerCompany(tradeOrganizerCompany);
        
        TradeOrganizerPerson tradeOrganizerPerson=new TradeOrganizerPerson();
        tradeOrganizerPerson.setFirstName("Рональд");
        tradeOrganizerPerson.setINN("888888888");
        tradeOrganizerPerson.setLastName("Рейган");
        tradeOrganizerPerson.setMiddleName("o");
        tradeOrganizer.setTradeOrganizerPerson(tradeOrganizerPerson);

        biddingInvitation.setTradeOrganizer(tradeOrganizer);
        
        biddingInvitation.setEventTime(timeEnd);
        
        RequestResult result = new RequestResult();
        System.out.println(""+biddingMonitoring.getServiceName());
        System.out.println("****"+biddingInvitation.getEventTime());
        try {
            result = biddingMonitoringSoap.setBiddingInvitation(biddingInvitation);
        } catch (Exception e) {
            e.printStackTrace();
//            SuccessResult successResult = result.getSuccessResult();
//            ErrorResult err = result.getErrorResult();
        }
    }
}
...
Рейтинг: 0 / 0
12.09.2012, 04:17:32
    #37953646
Kostya Ilyinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web сервис. Спихните с граблей пожалуйста.
senin,

Коллега, тут по-моему окромя Вашего кода есть еще сторонние, широкому сообществу неведомые, API. Либо ждите пока кто-то знакомый с API появится, либо больше деталей в студию. Дебажить пробовали? Вот тут коллеги-капиталисты че говорят:

http://stackoverflow.com/questions/1354844/jax-ws-setting-content-type-of-request

типа ошибка приходит, а не ответ, потому и в виде простого html. Лог сервера есть?
...
Рейтинг: 0 / 0
12.09.2012, 10:27:28
    #37953873
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web сервис. Спихните с граблей пожалуйста.
Kostya IlyinovКоллега, тут по-моему окромя Вашего кода есть еще сторонние, широкому сообществу неведомые, API. Либо ждите пока кто-то знакомый с API появится, либо больше деталей в студию.

Тут нет никакого стороннего API. Interfax.* это классы генеренные из WSDL.

Kostya IlyinovДебажить пробовали? Вот тут коллеги-капиталисты че говорят:
http://stackoverflow.com/questions/1354844/jax-ws-setting-content-type-of-request
типа ошибка приходит, а не ответ, потому и в виде простого html. Лог сервера есть?
Да, нужно смотреть что именно от сервера приходит. Например через
com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true

Если сервер действительно вернул HTML из-за какой-то ошибки. То нужно исправлять. А вот если сервер просто не ставить content-type, это уже немного хуже.
...
Рейтинг: 0 / 0
12.09.2012, 22:02:12
    #37955123
senin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web сервис. Спихните с граблей пожалуйста.
Blazkowiczcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true

вот за эту подсказку спасибо!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / web сервис. Спихните с граблей пожалуйста. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]