ExchangeServicePortType exChangeServiceProxy = getFactory()
.getExchangeServerPort();
UpdateItemType updateItemType = new UpdateItemType();
//设置changekey和uid
ItemChangeType itemChangeType = new ItemChangeType();
itemChangeType.setItemId(itemIdType);
//设置更新的calendar对象
NonEmptyArrayOfItemChangesType updateItemsType = new NonEmptyArrayOfItemChangesType();
NonEmptyArrayOfItemChangeDescriptionsType itemChangeDescriptionsType = new NonEmptyArrayOfItemChangeDescriptionsType();
List<ItemChangeDescriptionType> itemChangeDescriptionTypesList = itemChangeDescriptionsType.getAppendToItemFieldOrSetItemFieldOrDeleteItemField();
//更新的calendar对象
AppendToItemFieldType setItemFieldType = new AppendToItemFieldType();
CalendarItemType appointment = new CalendarItemType();
BodyType bodyType = new BodyType();
bodyType.setBodyType(BodyTypeType.TEXT);
bodyType.setValue("11111111");
appointment.setBody(bodyType);
appointment.setItemClass("IPM.Appointment");
appointment.setSubject("开会111");
appointment.setLocation("meeting001");
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
appointment.setItemId(itemIdType);
Date startTime = dateFormat.parse("2012-08-17 17:00:00");
Date endTime = dateFormat.parse("2012-08-17 18:00:00");
appointment.setStart(DateUtil.getXMLCalendar(startTime));
appointment.setEnd(DateUtil.getXMLCalendar(endTime));
setItemFieldType.setCalendarItem(appointment);
//设置webservice的命名空间
PathToUnindexedFieldType ptuftDisplayName = new PathToUnindexedFieldType();
ptuftDisplayName.setFieldURI(UnindexedFieldURIType.CALENDAR_ALLOW_NEW_TIME_PROPOSAL);
QName qName = new QName("
http://schemas.microsoft.com/exchange/services/2006/types", "Path");
JAXBElement<PathToUnindexedFieldType> element = new JAXBElement<PathToUnindexedFieldType>(qName, PathToUnindexedFieldType.class, ptuftDisplayName);
setItemFieldType.setPath(element);
itemChangeDescriptionTypesList.add(setItemFieldType);
itemChangeType.setUpdates(itemChangeDescriptionsType);
//设置updateItemType的其他属性
updateItemsType.getItemChange().add(itemChangeType);
updateItemType.setItemChanges(updateItemsType);
updateItemType.setConflictResolution(ConflictResolutionType.AUTO_RESOLVE);
updateItemType.setSendMeetingInvitationsOrCancellations(CalendarItemUpdateOperationType.SEND_TO_CHANGED_AND_SAVE_COPY);
//System.out.println(updateItemType);
Holder<UpdateItemResponseType> updateItemResult = new Holder<UpdateItemResponseType>(new UpdateItemResponseType());
Holder<ServerVersionInfo> serverVersion = new Holder<ServerVersionInfo>(new ServerVersionInfo());
exChangeServiceProxy.updateItem(updateItemType, updateItemResult, serverVersion);
这个我关于更新约会的方法,但报如下错误:
javax.xml.ws.soap.SOAPFaultException: 发生了内部
服务器错误。
at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178)
at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:111)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
at $Proxy40.updateItem(Unknown Source)
at a.ExchangeManager.updateMeetingForExchange(ExchangeManager.java:444)
at a.ExchangeManager.main(ExchangeManager.java:475)
请问该怎么做
我cxf将wsdl文件称webservice客户端接口。
或者有谁有源码(无论是java还是C#都可以)