Code Monkey home page Code Monkey logo

Comments (28)

goetas avatar goetas commented on May 24, 2024

is the file mentioned by the error accessible?

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

Yes ,
http://ws.link.test.hotelresb2b.com/axis2/services/Link?xsd=login.xsd

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

And when I wrap the xml with some headers like this:

image

How should I create the corresponding object in the headers?

Many thanks,
Victor

from soap-client.

goetas avatar goetas commented on May 24, 2024

is the file mentioned by the error accessible?

Can it be that the PHP client is not allowed to access the file for same reason? from what I know it is the only reason for that error

from soap-client.

goetas avatar goetas commented on May 24, 2024

How should I create the corresponding object in the headers?

you should use GoetasWebservices\SoapServices\SoapClient\Arguments\Headers\Header, see

$client->getSimple("foo", new Header($mp));
for an example

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

Sorry for the response, I will not bother you anymore.

We have this in metadata and SoapContainer.

image

We need to execute the following request:

image

Following your example we create the corresponding object:

$client->getRooms($rq, new \GoetasWebservices\SoapServices\SoapClient\Arguments\Headers\Header($userValidation));

$rq is an instanceof of the RequestRooms php class.

And when call this process we have following error in ArgumentReader:
PHP Notice: Undefined index: requestRoomsHeader in /var/www/igm_client/vendor/igm/synergyclient/src/Arguments/ArgumentsReader.php on line 66 PHP Fatal error: Call to a member function setValue() on null in /var/www/igm_client/vendor/igm/synergyclient/src/Arguments/ArgumentsReader.php on line 67

It would be very helpful if you could give us some reason for the error.

Many thanks

from soap-client.

goetas avatar goetas commented on May 24, 2024

I guess you have forgot to register the Header handler as in

$headerHandler = new HeaderHandler();

if you are suing SoapContainerBuilder::createSerializerBuilderFromContainer
You can do it via:

$serializer = SoapContainerBuilder::createSerializerBuilderFromContainer($container, function($registry) {
   $registry->registerSubscribingHandler(new HeaderHandler());
})->build();

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

No,

I think the problem is in ArgumentsReader when the serviceDefinition have many parts.

In method handleHeaders you set in envelope the instance of the headers and return the body.

So now we have this content:

In variable args:

image

And in input['parts']:
image

So, always throw at this point in code:
image

from soap-client.

goetas avatar goetas commented on May 24, 2024

Hmm... may be a bug, but not sure about it.

from soap-client.

goetas avatar goetas commented on May 24, 2024

Can you copy/paste your soap operaton for this call? im confused by the "requestRoomsHeader" in the "parts" array.

from soap-client.

goetas avatar goetas commented on May 24, 2024

Is the header defined also at SOAP metadata level or not? does it look as something as

<soap12:header use="literal" part="header" message="tns:requestHeader">
?

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

Here is the wsdl if you want to check but is allright I think:
image

image

from soap-client.

goetas avatar goetas commented on May 24, 2024

It looks a bug. I did not find anything that tests that case in my test suite.

Can you try to without wrapping the header param in \GoetasWebservices\SoapServices\SoapClient\Arguments\Headers\Header ?:

$client->getRooms($rq, $userValidation);

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

If I pass GetRoomsInput directly like:

screenshot - 260918 - 14 02 24

I've another error:
PHP Fatal error: Call to a member function value() on string in /var/www/igm_client/vendor/jms/serializer/src/JMS/Serializer/Metadata/PropertyMetadata.php on line 105

And also call the function with your parameters like this:
screenshot - 260918 - 14 05 34

from soap-client.

goetas avatar goetas commented on May 24, 2024

but you are still using \GoetasWebservices\SoapServices\SoapClient\Arguments\Headers\Header. Can you try without?

from soap-client.

goetas avatar goetas commented on May 24, 2024

like $client->getRooms($rq, $hotel).

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

Yes, if you pass like this:
$client->getRooms($rq, $userValidation);

I've this error:
PHP Notice: Undefined index: requestRoomsHeader in /var/www/igm_client/vendor/igm/synergyclient/src/Arguments/ArgumentsReader.php on line 71 PHP Fatal error: Call to a member function setValue() on null in /var/www/igm_client/vendor/igm/synergyclient/src/Arguments/ArgumentsReader.php on line 72

from soap-client.

goetas avatar goetas commented on May 24, 2024

:/

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

But I don't understand if I create request and set the body and header manually like:

screenshot - 260918 - 15 13 44

When I serialize to convert in XML it return followin error:
PHP Fatal error: Call to a member function value() on integer in /var/www/igm_client/vendor/jms/serializer/src/JMS/Serializer/Metadata/PropertyMetadata.php on line 104

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

And in getRoomsInput I have this:

image

And I've another error:
image

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

If the problem if this header:
image

Can I do this?
image

MyHandler is with o without namespace?

I want to do this to avoid the following:
image

from soap-client.

goetas avatar goetas commented on May 24, 2024

@riccardonar did you face an issue as this?

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

Because this class:
type: 'GoetasWebservices\SoapServices\SoapEnvelope\Headers<''Igm\Synergy\Definitions\Hotusa\Login\UserValidation''>'

Doesn't exist. It's posible to fix this? I do anything wrong? How it works?

Many thanks for attention.

from soap-client.

goetas avatar goetas commented on May 24, 2024

Should be GoetasWebservices\SoapServices\SoapEnvelope2\Headers.... @riccardonar ?

from soap-client.

riccardonar avatar riccardonar commented on May 24, 2024

did you face an issue as this?

Mmm, i check that in my SOAPs i haven't any header part in the operations, so i don't test it

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

Where you construct this part of metadatas?

`'GoetasWebservices\SoapServices\SoapEnvelope\Headers<''Igm\Synergy\Definitions\Hotusa\Login\UserValidation''>'

Because If i extrat the part the namespace of the class in there that's work correctly.

image

`

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

Because when you pass Header like you tell me:

$client->getRooms($rq, $userValidation);

In Arguments reader you set empty class HeaderPlaceHolder to envelope and it throws an error cause argument is not the correct instance.

Is that for something?

image

from soap-client.

victorgp89 avatar victorgp89 commented on May 24, 2024

We can do this but I'm not sure that if it's how you thought.

image

from soap-client.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.