global class TestWebService {
webservice static Account createAccountSimple(String name) {
Account acc = new Account(Name = name); insert acc;
return acc;
}
}
Как мне заранать етот веб сервис с Apex Class?
как то так?
HttpRequest req = new HttpRequest();
req.setMethod('POST');
req.setHeader('Authorization', 'OAuth ' + UserInfo.getSessionId());
req.setHeader('Content-Type', 'application/json');
req.setEndpoint();
req.setBody('{"name" : "TestName2222"}');
Http http = new Http();
HTTPResponse res = http.send(req);
System.debug('BODY: '+res.getBody());
Только что попюлейтить в setEndpoint???
1. Тебе нужно получить Serverurl. Его дают после успешного логина. Если у тебя есть сессионИд и ты хочешь ранить именно через http request, то с чего ты решил что твой вебервис возвращает json ?
Зачем тебе вообще запускать вебсервис подобным образом? Просто проверить что он работает? Если это так то проще исполь9овать Soapui или плагин для хрома для отправки запросов.
А что я не могу написать SOAP request с Апекс Класа?
Для Рест там все просто, есть urlMapping. Здесь же его нет.
Может тебе проще его поднять с javascirpt в Salesforce ?
так и сделал. Просто для себя хочу знать как заранать веб сервис с Апекс Класа и чото не получаетса
Правильный endpoint url поставь и будет тебе счастье. Цтобы его узнать скачай wsdl от своего вебсервиса.
Правильный endpoint url поставь и будет тебе счастье. Цтобы его узнать скачай wsdl от своего вебсервиса.
Ок. Я згенерил wsdl і где здесь ендпоінт?
Ето? <soap:address location="https://eu5.salesforce.com/services/Soap/class/TestWebService"/>
Но тут только Клас указан где метод прописовать?
И какой setMethod прописоть?
Чот я запуталса уже)))
[quote="wilder"][quote="remember"][quote="Sergey Prichepo"]Может тебе проще его поднять с javascirpt в Salesforce ?[/quote] так и сделал. Просто для себя хочу знать как заранать веб сервис с Апекс Класа и чото не получаетса[/quote] Правильный endpoint url поставь и будет тебе счастье. Цтобы его узнать скачай wsdl от своего вебсервиса.[/quote] Ок. Я згенерил wsdl і где здесь ендпоінт? Ето? <soap:address location="https://eu5.salesforce.com/services/Soap/class/TestWebService"/> Но тут только Клас указан где метод прописовать? И какой setMethod прописоть? Чот я запуталса уже)))
И какой setMethod прописоть?
А сам то как думаешь ? похоже на GET ?
[quote="remember"]И какой setMethod прописоть?[/quote] А сам то как думаешь ? похоже на GET ?
Но тут только Клас указан где метод прописовать?
в xml
У тебя будет что-то типа следующего:
<se:Envelope xmlns:se="http://schemas.xmlsoap.org/soap/envelope/">
<se:Header xmlns:sfns="http://soap.sforce.com/schemas/package/TestWebService">
<sfns:SessionHeader>
<sessionId></sessionId>
</sfns:SessionHeader>
</se:Header>
<se:Body>
<createAccountSimple xmlns="http://soap.sforce.com/schemas/package/TestWebService">
<name></name>
</createAccountSimple>
</se:Body>
</se:Envelope>
Из Apex все элементарно запускается, нужен только токен и урл
[quote="remember"]Но тут только Клас указан где метод прописовать?[/quote] в xml У тебя будет что-то типа следующего: [code] <se:Envelope xmlns:se="http://schemas.xmlsoap.org/soap/envelope/"> <se:Header xmlns:sfns="http://soap.sforce.com/schemas/package/TestWebService"> <sfns:SessionHeader> <sessionId></sessionId> </sfns:SessionHeader> </se:Header> <se:Body> <createAccountSimple xmlns="http://soap.sforce.com/schemas/package/TestWebService"> <name></name> </createAccountSimple> </se:Body> </se:Envelope> [/code] Из Apex все элементарно запускается, нужен только токен и урл
Только что попюлейтить в setEndpoint???
А что у тебя в JS?
[quote="remember"]Только что попюлейтить в setEndpoint???[/quote] А что у тебя в JS?
А почему ты не вызовешь метод класса? Зачем тебе именно callout?
А почему ты не вызовешь метод класса? Зачем тебе именно callout?