webService客户端调用时错误

solargiantfivepoint 2012-09-26 10:43:04
Exception in thread "main" AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: No operation name specified!
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:No operation name specified!
at org.apache.axis.client.Call.invoke(Call.java:1809)
at org.apache.ws.test.Test.main(Test.java:33)

{http://xml.apache.org/axis/}hostname:solargiant-PC

No operation name specified!
at org.apache.axis.client.Call.invoke(Call.java:1809)
at org.apache.ws.test.Test.main(Test.java:33)
...全文
883 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
问题已经解决 是services.xml配置的问题 谢谢大家了!
zkmzge 2012-09-26
  • 打赏
  • 举报
回复
把调用的代码贴出来看下
  • 打赏
  • 举报
回复
谢谢您!我刚刚接触webservice,好多问题耶
huimiezu 2012-09-26
  • 打赏
  • 举报
回复
调用时没设定调用的方法
  • 打赏
  • 举报
回复
还是AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode:
faultString: The SERVICE_OBJECT_SUPPLIER parameter is not specified.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:The SERVICE_OBJECT_SUPPLIER parameter is not specified.这个错误
public static void main(String[] args)
{
GbmsService gs= new GbmsService();
gs.callnewProcessInstance();----在这里提示错误
/*gs.callprocManTaskFirst();
gs.callprocManTaskSecond();*/

}

public void callnewProcessInstance()
{
try {
//
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(GBMS_SERVICE_ENDPOINT));
call.setOperationName(new QName("http://webservice.sinosoft.com/","newProcessInstance"));
call.addParameter(new QName("http://webservice.sinosoft.com/","optionPerson"), XMLType.SOAP_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName("http://webservice.sinosoft.com/","wftemplate"), XMLType.SOAP_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName("http://webservice.sinosoft.com/","grtLetterNum"), XMLType.SOAP_STRING, javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
try {
String ret = (String) call.invoke(new Object[] {"Stephen","Process","00121212"}); -------这里提示出错
System.out.println("The return value is:" + ret);
return;
} catch (IOException e)
{
e.printStackTrace();
}
} catch (MalformedURLException e)
{
e.printStackTrace();
} catch (ServiceException e)
{
e.printStackTrace();
}
log.error("call newProcessInstance service error!");
}
zkmzge 2012-09-26
  • 打赏
  • 举报
回复
call.addParameter("optionPerson", XMLType.SOAP_STRING, javax.xml.rpc.ParameterMode.IN);
你把几个addParameter全换成这种形式看下
call.addParameter(new QName("http://webservice.sinosoft.com/", "optionPerson"), XMLType.SOAP_STRING, javax.xml.rpc.ParameterMode.IN);
huimiezu 2012-09-26
  • 打赏
  • 举报
回复
services.xml 配置了这个吗
<parameter name="ServiceObjectSupplier"> org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
</parameter>
  • 打赏
  • 举报
回复
不行又报这个错误了
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode:
faultString: The SERVICE_OBJECT_SUPPLIER parameter is not specified.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:The SERVICE_OBJECT_SUPPLIER parameter is not specified.
huimiezu 2012-09-26
  • 打赏
  • 举报
回复
call.setTargetEndpointAddress(new java.net.URL(GBMS_SERVICE_ENDPOINT));
改成call.setTargetEndpointAddress(GBMS_SERVICE_ENDPOINT); 试试
  • 打赏
  • 举报
回复
public class GBMSService
{
/***
* 开始一个新的GBMS流程实例,并且创建开始节点的任务,设置相关变量,传输上下文参数
* */
public void newProcessInstance(String optionPerson, String wftemplate,String grtLetterNum) throws Exception
{
JbpmContext jc=JbpmConfiguration.getInstance().createJbpmContext();
//设置当前登陆用户
jc.setActorId(optionPerson);
//获取GBMS流程模板
ProcessDefinition pd = jc.getGraphSession().findLatestProcessDefinition(wftemplate);
//
ProcessInstance pi = pd.createProcessInstance();
//
ContextInstance ci = pi.getContextInstance();
//设置提交人
ci.setVariable(optionPerson, optionPerson);
//创建开始节点的TaskInstance
TaskInstance ti = pi.getTaskMgmtInstance().createStartTaskInstance();
//向任务实例中写入变量
ti.setVariable("title", "title");
ti.setVariable("type", "type");
ti.setVariable("remark", "remark");
ti.setVariable("grtLetterNum", grtLetterNum);

//结束任务实例
ti.end();
}

这个是service的代码 谢谢您
zkmzge 2012-09-26
  • 打赏
  • 举报
回复
faultString: The SERVICE_OBJECT_SUPPLIER parameter is not specified. 说你参数没指定,你把Service里面的代码贴出来看下
  • 打赏
  • 举报
回复
上面是客户端执行的代码 这是错误

log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).
log4j:WARN Please initialize the log4j system properly.
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode:
faultString: The SERVICE_OBJECT_SUPPLIER parameter is not specified.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:The SERVICE_OBJECT_SUPPLIER parameter is not specified.
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.bankht.gbms.test.GbmsService.callnewProcessInstance(GbmsService.java:48)
at com.bankht.gbms.test.GbmsService.main(GbmsService.java:27)

{http://xml.apache.org/axis/}hostname:solargiant-PC

The SERVICE_OBJECT_SUPPLIER parameter is not specified.
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.bankht.gbms.test.GbmsService.callnewProcessInstance(GbmsService.java:48)
at com.bankht.gbms.test.GbmsService.main(GbmsService.java:27)



谢谢您
  • 打赏
  • 举报
回复
/***
* 定义一个客户端测试类GbmsService,用于测试WebService是否发布成功
* */
public class GbmsService {

private static final Log log = LogFactory.getLog(GbmsService.class);
private static final String GBMS_SERVICE_ENDPOINT = "http://localhost:8080/bpm/services/GBMSService";


public static void main(String[] args)
{
GbmsService gs= new GbmsService();
gs.callnewProcessInstance();
/*gs.callprocManTaskFirst();
gs.callprocManTaskSecond();*/

}

/***
* 定义客户端调用方法callnewProcessInstance
* */
public void callnewProcessInstance()
{
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(GBMS_SERVICE_ENDPOINT));
call.setOperationName(new QName("http://webservice.sinosoft.com/","newProcessInstance"));
call.addParameter("optionPerson", XMLType.SOAP_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter("wftemplate", XMLType.SOAP_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter("grtLetterNum", XMLType.SOAP_STRING, javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
try {
String ret = (String) call.invoke(new Object[] {"Stephen","Process","00121212"});
System.out.println("The return value is:" + ret);
return;
} catch (IOException e)
{
e.printStackTrace();
}
} catch (MalformedURLException e)
{
e.printStackTrace();
} catch (ServiceException e)
{
e.printStackTrace();
}
log.error("call newProcessInstance service error!");
}



67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧