1C 8.3 Web-сервис + клиент на Java (2)

 
 
 
Сообщения:33
Продолжение вопроса. В метод take на web-сервисе добавил два параметра:

param1 (string входящий);
param2 (string выходящий).


И соответственно Java выдает ошибку:
Exception in thread "AWT-EventQueue-0" com.sun.xml.ws.fault.ServerSOAPFaultException: Client received SOAP Fault from server: SOAP message parsing error: unknown parameter.  Please see the server log to find more detail regarding exact cuase of the failure.
+ Code

    at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193)
    at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:126)
    at com.sun.xml.ws.client.sei.StubHandler.readResponse(StubHandler.java:247)
    at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:177)
    at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:256)
    at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:128)
    at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:102)
    at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:151)
    at com.sun.proxy.$Proxy27.GetLicensed(Unknown Source)
    at webservice.testWS.getOS(testWS.java:123)
    at webservice.testWS.btnConnectActionPerformed(testWS.java:102)
    at webservice.testWS.access$000(testWS.java:16)
    at webservice.testWS$1.actionPerformed(testWS.java:52)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6533)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6298)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


Код Java:
       lbOS.setText("Подключение");
        // Создаем Jax-WS прокси на демо web-сервис 1С:Предприятия

        Authenticator  auth  = new Authenticator() {
            Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("admin", "1".toCharArray());
            }

        };
        // Создаем Jax-WS прокси на демо web-сервис 1С:Предприятия

        Authenticator.setDefault(auth);
        wsTest ws = new wsTest();
        
        // Получаем порт для вызова операции web-сервиса

        wsTestPortType portType = ws.getTestSoap();
        
        // Выполняем вызов web-сервиса

        String error = "";
        String verOS = portType.take("1234",error);
        
        //отключаем

        
        lbOS.setText(verOS);
    }


И класс Take изменил:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package webservice;

import javax.jws.WebMethod;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;

/**
 *
 * @author SERGEYRYLSKIY-PC
 */
@WebService(name = "wsTestPortType", targetNamespace = "test")
@XmlSeeAlso({
    ObjectFactory.class
})
public interface wsTestPortType {
    @WebMethod(operationName = "Take")
    @WebResult(targetNamespace = "test")
    @RequestWrapper(localName = "Take", targetNamespace = "test", className = "wsdemo.client.Take")
    @ResponseWrapper(localName = "TakeResponse", targetNamespace = "test", className = "wsdemo.client.TakeResponse")
    public String Take(String param1, String param2);
    
}

Прежде чем кидаться на человека за его поступок, поставьте себя на его место.
Изменен:12 янв 2017 10:23
 
 
Сообщения:33
Проблему решил. Используя NetBeans IDE 8.2 добавил в проект новый файл "Веб службы - клиент веб-службы" и платформа сама сгенерировала все необходимые классы и интерфейсы.

Прежде чем кидаться на человека за его поступок, поставьте себя на его место.
 
Модераторы:frymock
Сейчас эту тему просматривают:Нет