服务端的 EJB 代码如下:
@WebService(name = "TravelAgent", serviceName = "TravelAgentService")
@Stateless
public class TravelAgentBean implements TravelAgentRemote {
......
@WebMethod
@WebResult(name = "List")
public List test(@WebParam(name = "name") String name)
{
System.out.println("name : ");System.out.println(name);
Query query = manager.createQuery("from Cabin c");
List list = query.getResultList();
return list;
}
......
}
客户端的 PHP 代码如下:
$client = new SoapClient($wsdl_url);
$username = $client->test(array('name'=>'asdfhasldfjl'));
var_dump($username);如果服务端是 @Stateless . 使用 Java 客户端调用是没有问题的, 服务端是 @WebService 时, 使用 new ArrayList 实现返回也是没有问题. 唯有 query.getResultList(); 返回时, 出现 WebServiceException 异常. 
那位高手有空, 请指点下小弟. 小弟是新手. 3 个月前刚买了几本 java 的书看看. QQ : 280016524
Email : [email protected]如下是服务器端抛出的异常:
22:44:45,127 INFO  [EJB3Deployer] Deployed: file:/C:/jboss-4.2.3.GA/server/defau
lt/deploy/WebServicesDemo.jar/
22:44:45,228 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=WebServi
cesDemo,endpoint=TravelAgentBean
22:44:51,086 INFO  [WSDLFilePublisher] WSDL published to: file:/C:/jboss-4.2.3.G
A/server/default/data/wsdl/WebServicesDemo.jar/TravelAgentService55191.wsdl
22:44:51,396 INFO  [TomcatDeployer] deploy, ctxPath=/WebServicesDemo, warUrl=...
/tmp/deploy/WebServicesDemo.jar55190.war/
22:44:53,570 INFO  [STDOUT] name :
22:44:53,570 INFO  [STDOUT] asdfhasldfjl
22:44:54,691 INFO  [STDOUT] list :
22:44:54,691 INFO  [STDOUT] [chen.degui.domain.Cabin@1681460]
22:44:54,711 ERROR [RequestHandlerImpl] Error processing web service request
org.jboss.ws.WSException: javax.xml.ws.WebServiceException: javax.xml.bind.Marsh
alException
 - with linked exception:
[javax.xml.bind.JAXBException: class chen.degui.domain.Cabin nor any of its supe
r class is known to this context.]
        at org.jboss.ws.WSException.rethrow(WSException.java:68)
        at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHand
lerImpl.java:325)
        at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl
.java:201)
        at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(Request
HandlerImpl.java:134)
        at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java
:84)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
lter.java:96)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:230)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:175)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
yAssociationValve.java:182)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
e.java:84)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:102)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC
onnectionValve.java:157)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:262)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ss(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
6)
        at java.lang.Thread.run(Thread.java:619)
Caused by: javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException
 - with linked exception:
[javax.xml.bind.JAXBException: class chen.degui.domain.Cabin nor any of its supe
r class is known to this context.]
        at org.jboss.ws.core.jaxws.JAXBSerializer.handleMarshallException(JAXBSe
rializer.java:124)
        at org.jboss.ws.core.jaxws.JAXBSerializer.serialize(JAXBSerializer.java:
87)
        at org.jboss.ws.core.binding.SerializerSupport.serialize(SerializerSuppo
rt.java:57)
        at org.jboss.ws.core.soap.ObjectContent.marshallObjectContents(ObjectCon
tent.java:159)
        at org.jboss.ws.core.soap.ObjectContent.transitionTo(ObjectContent.java:
72)
        at org.jboss.ws.core.soap.SOAPContentElement.transitionTo(SOAPContentEle
ment.java:141)
        at org.jboss.ws.core.soap.SOAPBodyElementDoc.transitionTo(SOAPBodyElemen
tDoc.java:85)
        at org.jboss.ws.core.soap.SOAPContentElement.writeElement(SOAPContentEle
ment.java:547)
        at org.jboss.ws.core.soap.SOAPElementImpl.writeElementContent(SOAPElemen
tImpl.java:840)
        at org.jboss.ws.core.soap.SOAPElementImpl.writeElement(SOAPElementImpl.j
ava:825)
        at org.jboss.ws.core.soap.SOAPElementImpl.writeElementContent(SOAPElemen
tImpl.java:840)
        at org.jboss.ws.core.soap.SOAPElementImpl.writeElement(SOAPElementImpl.j
ava:825)
        at org.jboss.ws.core.soap.SOAPElementWriter.writeElementInternal(SOAPEle
mentWriter.java:149)
        at org.jboss.ws.core.soap.SOAPElementWriter.writeElement(SOAPElementWrit
er.java:130)
        at org.jboss.ws.core.soap.SOAPMessageImpl.writeTo(SOAPMessageImpl.java:3
25)
        at org.jboss.wsf.stack.jbws.RequestHandlerImpl.sendResponse(RequestHandl
erImpl.java:392)
        at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHand
lerImpl.java:321)
        ... 22 more