我想做一个基于juddiv3的uddi订阅-可总是出这个问题-求帮助-谢谢

错误代码:
org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: At least one categoryBag, find_tModel or tModelBag must be supplied
org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:92)
org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
$Proxy46.save_subscription(Unknown Source)
com.uddi.action.QueryServiceAction.queryByName(QueryServiceAction.java:310)

程序代码:
ActionContext context = ActionContext.getContext();
session = context.getSession();
HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);
UDDI_Inquiry_PortClient client = new UDDI_Inquiry_PortClient();
UDDI_Inquiry_PortType inquiryService = client.getUDDIInquiryServicePort();

UDDI_Subscription_PortClient subscriptionClient = new UDDI_Subscription_PortClient();
UDDI_Subscription_PortType subscriptionService = subscriptionClient.getUDDISubscriptionServicePort();

FindQualifiers fq = new FindQualifiers();
fq.getFindQualifier().add("binarysort");
fq.getFindQualifier().add("sortbydateasc");
fq.getFindQualifier().add("approximatematch");
Name name = new Name();
sName = request.getParameter("sName");
System.out.println("authinfo:"+authinfo);*/
name.setValue("%"+sName+"%");
FindService fs = new FindService();
fs.setAuthInfo(authinfo);
fs.setFindQualifiers(fq);
fs.getName().add(name);
ServiceList serviceList = inquiryService.find_service(fs);
ServiceInfos sif = serviceList.getServiceInfos();
List sifs = sif.getServiceInfo();
List sdlists = new ArrayList();
for(ServiceInfo s:sifs){
String serviceKey = s.getServiceKey();
GetServiceDetail gsd=new GetServiceDetail();
gsd.setAuthInfo(authinfo);
gsd.getServiceKey().add(serviceKey);
ServiceDetail serviceDetail = inquiryService.get_serviceDetail(gsd);
sdlists.add(serviceDetail);
BusinessService bs = serviceDetail.getBusinessService().get(0);
String bindingkey = bs.getBindingTemplates().getBindingTemplate().get(0).getBindingKey();
GetBindingDetail gbd = new GetBindingDetail();
gbd.setAuthInfo(authinfo);
gbd.getBindingKey().add(bindingkey);
BindingDetail bindingdetail=inquiryService.get_bindingDetail(gbd);
BindingTemplate bindingtemplate=bindingdetail.getBindingTemplate().get(0);
AccessPoint myPoint = bindingtemplate.getAccessPoint();
myPoint.setUseType("http");
myPoint.setValue("http://1024040730@qq.com");
bindingtemplate.setAccessPoint(myPoint);

 SubscriptionFilter myFilter = new SubscriptionFilter();
  myFilter.setFindService(fs);
  myFilter.setGetServiceDetail(gsd);



 Subscription mySubscription = new Subscription();
  mySubscription.setBindingKey(bindingtemplate.getBindingKey());
  mySubscription.setMaxEntities(1000);
          mySubscription.setNotificationInterval(new DatatypeFactoryImpl().newDurationDayTime("PT1M"));
  mySubscription.setSubscriptionFilter(myFilter);
  mySubscription.setBrief(true);

// System.out.println(mySubscription);

 SaveSubscription mySaveSubscription = new SaveSubscription();
  mySaveSubscription.setAuthInfo(authinfo);
  mySaveSubscription.getSubscription().add(mySubscription);

// System.out.println(mySaveSubscription);
Subscriptions mySubscriptions = subscriptionService.save_subscription(mySaveSubscription);