公司的一个ftp文件上传功能的代码,看不懂求解释!!!
@Service("usdmFileService") public class USDMFileServiceImpl extends AbstractService implements USDMFileService { /** * 上传 * 本地上传的附件,先上传至FTP,存表,上传至接口 * @param CommonFiles 文件存储表 */ public void upLoad(CommonFiles commonFiles,String tempPath) throws ServiceException { log.info("上传附件开始!"); UsdmService us = null; try { UsdmServiceService uss = new UsdmServiceService(); us = uss.getUsdmServicePort(); } catch (Exception e) { e.printStackTrace(); log.info("请求超时"); throw new ServiceException("请求超时"); } ... }
@WebService(name = "usdmService", targetNamespace = "http://service.usdm.ecm.nantian.com/") @SOAPBinding(style = SOAPBinding.Style.RPC) @XmlSeeAlso({ ObjectFactory.class }) public interface UsdmService { /** * * @param arg0 * @return * returns com.nantian.ecm.usdm.service.Response */ @WebMethod @WebResult(partName = "return") public Response upload( @WebParam(name = "arg0", partName = "arg0") Request arg0); ... }
@WebServiceClient(name = "UsdmServiceService", targetNamespace = "http://service.usdm.ecm.nantian.com/", wsdlLocation = "http://10.1.39.30:8100/ECF/usdmService?wsdl") public class UsdmServiceService extends Service { /** * * @return * returns UsdmService */ @WebEndpoint(name = "usdmServicePort") public UsdmService getUsdmServicePort() { return (UsdmService)super.getPort(new QName("http://service.usdm.ecm.nantian.com/", "usdmServicePort"), UsdmService.class); } ... }
从上面的代码中可以看出uss调用了getUsdmServicePort();方法,然后就返回了UsdmService对象,并且调用该对象的upload方法,是可以上传文件的,也就是说javax.xml.ws.Service.getPort方法返回了一个us接口的实现类。
下面是service.getPort源码:
package javax.xml.ws; public class Service { ... public <T> T getPort(QName portName, Class<T> serviceEndpointInterface) { return delegate.getPort(portName, serviceEndpointInterface); } ... }
public abstract class ServiceDelegate { ... public abstract <T> T getPort(QName portName, Class<T> serviceEndpointInterface); ... }
这是不是动态代理(我不懂)?求大神给个这方面类容的:书名,我好去自学一下,谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
还有UsdmService类和方法上的注解有什么用吗?
确实用的都是webservice,你可以看下相关的知识,好久没写忘了都,相关的实现方法是在其他地方,只不过通过提供的远程接口来访问调用
还有那个USDM的缩写有什么含义吗?百度也查询不到相关的。
USDMFileService类的部分代码:
这是在网上找到的相关内容:
“
三、使用axis1.4调用webservice方法
前提条件:下载axis1.4包和tomcat服务器 ,并将axis文件夹复制到tomcat服务器的webapp文件夹中
这里我就说一下最简单的方法:
首先建立一个任意的java类(例如:HelloWorld.java),复制到axis文件夹下,将其扩展名改为jws,然后重新启动tomcat,在浏览器中输入http://localhost:8989/axis/HelloWorld.jws?wsdl,就会得到一个wsdl文件,其客户端调用方法如下:
”