Adrian
2008-08-04 14:58:36 UTC
Hello all,
I have the following code which produces this error: Fatal error:
Uncaught SCA_RuntimeException: Namespace defined in @param not found
in @types annotation: 'subject' thrown in /usr/share/php5/SCA/
SCA_AnnotationReader.php on line 305
if I comment out line 305 I get a good WSDL file.
This seems to be somehow related to
http://groups.google.com/group/phpsoa/browse_thread/thread/1a6aeed8a18b9ab9/0e4dc241404d0ee3?lnk=gst&q=implements#0e4dc241404d0ee3
because I have to move the include to the bottom of the page.
What is the latest status on this issue? Thanks,
Adrian
<?php
/**
* @service
* @binding.soap
*/
class WorkloadManager implements SplObserver {
public static $status;
/**
* @param SplSubject $subject subject class to observe
* @return bool
*/
public function update(SplSubject $subject) {
if($subject instanceof SplSubject) {
$this->status = $subject->status;
return TRUE;
}else {
return FALSE;
}
}
}
include "SCA/SCA.php";
?>
<wsdl:definitions targetNamespace="http://WorkloadManager">
<wsdl:types>
<xs:schema targetNamespace="http://WorkloadManager"
elementFormDefault="qualified">
<xs:element name="update">
<xs:complexType>
<xs:sequence>
<xs:element name="subject" type=":SplSubject"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="updateResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="updateReturn" type="xs:bool"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="updateRequest">
<wsdl:part name="updateRequest" element="tns2:update"/>
</wsdl:message>
<wsdl:message name="updateResponse">
<wsdl:part name="return" element="tns2:updateResponse"/>
</wsdl:message>
<wsdl:portType name="WorkloadManagerPortType">
<wsdl:operation name="update">
<wsdl:input message="tns2:updateRequest"/>
<wsdl:output message="tns2:updateResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="WorkloadManagerBinding"
type="tns2:WorkloadManagerPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<wsdl:operation name="update">
<soap:operation soapAction=""/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WorkloadManagerService">
<wsdl:port name="WorkloadManagerPort"
binding="tns2:WorkloadManagerBinding">
<soap:address location="http://workhorse.buttermaker.phptest/
WorkloadManager.php"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<!--
this line identifies this file as WSDL generated by SCA for PHP. Do
not remove
-->
I have the following code which produces this error: Fatal error:
Uncaught SCA_RuntimeException: Namespace defined in @param not found
in @types annotation: 'subject' thrown in /usr/share/php5/SCA/
SCA_AnnotationReader.php on line 305
if I comment out line 305 I get a good WSDL file.
This seems to be somehow related to
http://groups.google.com/group/phpsoa/browse_thread/thread/1a6aeed8a18b9ab9/0e4dc241404d0ee3?lnk=gst&q=implements#0e4dc241404d0ee3
because I have to move the include to the bottom of the page.
What is the latest status on this issue? Thanks,
Adrian
<?php
/**
* @service
* @binding.soap
*/
class WorkloadManager implements SplObserver {
public static $status;
/**
* @param SplSubject $subject subject class to observe
* @return bool
*/
public function update(SplSubject $subject) {
if($subject instanceof SplSubject) {
$this->status = $subject->status;
return TRUE;
}else {
return FALSE;
}
}
}
include "SCA/SCA.php";
?>
<wsdl:definitions targetNamespace="http://WorkloadManager">
<wsdl:types>
<xs:schema targetNamespace="http://WorkloadManager"
elementFormDefault="qualified">
<xs:element name="update">
<xs:complexType>
<xs:sequence>
<xs:element name="subject" type=":SplSubject"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="updateResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="updateReturn" type="xs:bool"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="updateRequest">
<wsdl:part name="updateRequest" element="tns2:update"/>
</wsdl:message>
<wsdl:message name="updateResponse">
<wsdl:part name="return" element="tns2:updateResponse"/>
</wsdl:message>
<wsdl:portType name="WorkloadManagerPortType">
<wsdl:operation name="update">
<wsdl:input message="tns2:updateRequest"/>
<wsdl:output message="tns2:updateResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="WorkloadManagerBinding"
type="tns2:WorkloadManagerPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<wsdl:operation name="update">
<soap:operation soapAction=""/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WorkloadManagerService">
<wsdl:port name="WorkloadManagerPort"
binding="tns2:WorkloadManagerBinding">
<soap:address location="http://workhorse.buttermaker.phptest/
WorkloadManager.php"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<!--
this line identifies this file as WSDL generated by SCA for PHP. Do
not remove
-->