./complex.pl
document/literal support is EXPERIMENTAL in SOAP::Lite at /usr/local/share/perl/5.8.7/SOAP/Lite.pm line 2818.
Type 'PublishRequest' can't be found in a schema class 'SOAP::Serializer'
####
####
package PublishRequestType;
use strict;
use warnings;
use SOAP::Data::ComplexType;
use vars qw(@ISA);
@ISA = qw(SOAP::Data::ComplexType);
use constant OBJ_URI => 'http://services.mydomain.org/broker';
use constant OBJ_TYPE => 'ns1:PublishRequest';
use constant OBJ_FIELDS => {
PublishRequest => [[ BrokerMessageType_inner::OBJ_TYPE, BrokerMessageType_inner::OBJ_FIELDS ],
BrokerMessageType_inner::OBJ_URI,
undef ]
};
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $data = shift;
my $obj_fields = shift;
$obj_fields = defined $obj_fields && ref($obj_fields) eq 'HASH' ? {%{$obj_fields}, %{+OBJ_FIELDS}} : OBJ_FIELDS;
my $self = $class->SUPER::new($data, $obj_fields);
return bless($self, $class);
}
package BrokerMessageType_inner;
use strict;
use warnings;
use SOAP::Data::ComplexType;
use vars qw(@ISA);
@ISA = qw(SOAP::Data::ComplexType);
use constant OBJ_URI => 'http://services.mydomain.org/broker';
use constant OBJ_TYPE => 'ns1:PublishRequest';
use constant OBJ_FIELDS => {
BrokerMessage => [[ BrokerMessageType::OBJ_TYPE, BrokerMessageType::OBJ_FIELDS ],
BrokerMessageType::OBJ_URI,
undef ]
};
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $data = shift;
my $obj_fields = shift;
$obj_fields = defined $obj_fields && ref($obj_fields) eq 'HASH' ? {%{$obj_fields}, %{+OBJ_FIELDS}} : OBJ_FIELDS;
my $self = $class->SUPER::new($data, $obj_fields);
return bless($self, $class);
}
package BrokerMessageType;
use strict;
use warnings;
use SOAP::Data::ComplexType;
use vars qw(@ISA);
@ISA = qw(SOAP::Data::ComplexType);
use constant OBJ_URI => 'http://services.mydomain.org/broker';
use constant OBJ_TYPE => 'ns1:BrokerMessage';
use constant OBJ_FIELDS => {
deliveryMode => ['int', undef, undef],
priority => ['int', undef, undef],
messageId => ['string', undef, undef],
correlationId => ['string', undef, undef],
timestamp => ['string', undef, undef],
expiration => ['string', undef, undef],
destinationName => ['string', undef, undef],
textPayload => ['string', undef, undef],
};
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $data = shift;
my $obj_fields = shift;
$obj_fields = defined $obj_fields && ref($obj_fields) eq 'HASH' ? {%{$obj_fields}, %{+OBJ_FIELDS}} : OBJ_FIELDS;
my $self = $class->SUPER::new($data, $obj_fields);
return bless($self, $class);
}
####
#!/usr/bin/perl -w
package main;
use strict;
use Data::Dumper;
use SOAP::Lite +trace => qw( debug );
use SOAP::Data::ComplexType;
use BrokerMessageType;
use BrokerMessageType_inner;
use PublishRequestType;
my $WSDL = 'file:///tmp/broker.wsdl';
my $soap = SOAP::Lite
-> uri('http://services.mydomain.org/broker')
-> service($WSDL);
my $request_obj = PublishRequestType->new
({
PublishRequest => { BrokerMessage => { destinationName => 'blogs',
textPayload => 'TEST' }}
});
$soap->publish($request_obj->as_soap_data);
####
blogs
TEST