百科游戏 手游攻略
大家好,今天来为大家解答discuznt这个问题的一些问题点,包括asp.net c# 邮件定时发送。也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
如何调用webservice接口 ajax
Java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebServiceClient代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自动生成代码省事些。
1、编写代码方式:
packagecom.yudun.test;
importjava.rmi.RemoteException;
importorg.apache.axis.client.Call;
importorg.apache.axis.client.Service;
importorg.apache.axis.message.PrefixedQName;
importorg.apache.axis.message.SOAPHeaderElement;
importcom.cezanne.golden.user.Exception;
importcom.cezanne.golden.user.UserManagerServiceProxy;
importjavax.xml.namespace.QName;
importjava.net.MalformedURLException;
importjavax.xml.rpc.ServiceException;
importjavax.xml.soap.Name;
importjavax.xml.soap.SOAPException;
publicclasstestWebService{
publicstaticStringgetResult()throwsServiceException,MalformedURLException,RemoteException,SOAPException
{
//标识WebService的具体路径
Stringendpoint="WebService服务地址";
//创建Service实例
Serviceservice=newService();
//通过Service实例创建Call的实例
Callcall=(Call)service.createCall();
//将WebService的服务路径加入到call实例之中.
call.setTargetEndpointAddress(newjava.net.URL(endpoint));//为Call设置服务的位置
//由于需要认证,故需要设置调用的SOAP头信息。
NameheaderName=newPrefixedQName(newQName("发布的wsdl里的targetNamespace里的url","string_itemName"));
org.apache.axis.message.SOAPHeaderElementheader=newSOAPHeaderElement(headerName);
header.addTextNode("blablabla");
call.addHeader(header);
//SOAPHeaderElementsoapHeaderElement=newSOAPHeaderElement("发布的wsdl里的targetNamespace里的url","SoapHeader");
//soapHeaderElement.setNamespaceURI("发布的wsdl里的targetNamespace里的url");
//try
//{
//soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");
//}
//catch(SOAPExceptione)
//{
//e.printStackTrace();
//}
//call.addHeader(soapHeaderElement);
//调用WebService的方法
org.apache.axis.description.OperationDescoper;
org.apache.axis.description.ParameterDescparam;
oper=neworg.apache.axis.description.OperationDesc();
oper.setName("opName");
param=neworg.apache.axis.description.ParameterDesc(newjavax.xml.namespace.QName("","arg0"),org.apache.axis.description.ParameterDesc.IN,newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"),java.lang.String.class,false,false);
param.setOmittable(true);
oper.addParameter(param);
param=neworg.apache.axis.description.ParameterDesc(newjavax.xml.namespace.QName("","arg1"),org.apache.axis.description.ParameterDesc.IN,newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"),java.lang.String.class,false,false);
param.setOmittable(true);
oper.addParameter(param);
param=neworg.apache.axis.description.ParameterDesc(newjavax.xml.namespace.QName("","arg2"),org.apache.axis.description.ParameterDesc.IN,newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"),java.lang.String.class,false,false);
param.setOmittable(true);
oper.addParameter(param);
oper.setReturnType(newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"));
oper.setReturnClass(java.lang.String.class);
oper.setReturnQName(newjavax.xml.namespace.QName("","return"));
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
oper.addFault(neworg.apache.axis.description.FaultDesc(
newjavax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","Exception"),
"Exception",
newjavax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","Exception"),
true
));
call.setOperation(oper);
call.setOperationName(newjavax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","opName"));
//调用WebService,传入参数
Stringres=(String)call.invoke(newObject[]("arg0","arg1"));
System.out.println("===============");
returnres;
}
publicstaticvoidmain(String[]args){
try{
System.out.println(getResult());
}catch(MalformedURLExceptione){
e.printStackTrace();
}catch(RemoteExceptione){
e.printStackTrace();
}catch(ServiceExceptione){
e.printStackTrace();
}catch(SOAPExceptione){
e.printStackTrace();
}
}
}
2、利用Eclipse自动生成WebServiceclient代码就容易多了:(由于还不会发图片,就用语言描述了,大家酬和看吧。。。)
首先,newproject,选择other,在输入框中输入WebServiceClient,选中搜索后的结果,点击Next,在Servicedefinition中输入WebService的发布地址,点击Finish
这样,WebServiceClient代码已经生成好了。
接下来写一个Test类,在main函数中输入如下代码:
Stringendpoint="服务器的WebService的地址";
YourWebServiceNameProxyumsp=newYourWebServiceNameProxy(endpoint);
try{
StringresultStr=umsp.opMethod("arg0","arg1");
System.out.println(resultStr);
}catch(Exceptione){
System.out.println("异常");
e.printStackTrace();
}catch(RemoteExceptione){
System.out.println("RemoteException异常");
e.printStackTrace();
}
asp.net c# 邮件定时发送。
在ASP.NET中使用计时器(Timer)
我在实验中发现在ASP.NET中可以使用计时器(Timer)完成一些定时动作。这一点可能会对我们的一些Web程序有益。
下面首先介绍我测试使用的一个例子:
首先在global.asax中的Application_OnStart事件过程中定义计时器,代码如下:
[VB.NET]global.asax
<%@importNamespace="System.Timers"%>
SubApplication_OnStart(senderAsObject,eAsEventArgs)
'创建一个计时器,单位:毫秒
DimaTimerAsNewSystem.Timers.Timer(10000)
'将Fresher指定为计时器的Elapsed事件处理程序
AddHandleraTimer.Elapsed,AddressOfFresher
'AutoReset属性为true时,每隔指定时间循环一次;
'如果为false,则只执行一次。
aTimer.AutoReset=True
aTimer.Enabled=True
'先给Application("TimeStamp")指定一个初值
Application.Lock()
Application("TimeStamp")=DateTime.Now.ToString()
Application.UnLock()
EndSub
SubFresher(senderAsObject,eAsElapsedEventArgs)
Application.Lock()
Application("TimeStamp")=DateTime.Now.ToString()
Application.UnLock()
EndSub
然后我们简单写一个test.aspx来查看Application("TimeStamp")的值。代码如下:
[VB.NET]test.aspx
<%
Response.Write(Application("TimeStamp"))
%>
分析:
根据global.asax中的代码,我们设定了一个计时器,每隔10秒钟执行一次Fresher()过程;在Fresher()过程中我们事实上只是重新写入了一个Application("TimeStamp")新值。换句话说,Application("TimeStamp")的值是应该每隔10秒钟更新一次的。
是不是这样的呢?通过test.aspx的反复刷新观察Application("TimeStamp")的值,的确发现这个值在每隔10秒地变化一次,而其他时候则保持不变。与我们的预期是一致的。
意义:
通过引入计时器我们可以在ASP.NET的全局性程序(Application)中灵活的使用计时器完成一些定时操作,比如:在社区/论坛系统中,每隔5分钟更新一次在线用户列表,每隔1个小时更新一次用户经验值,或者每隔一天备份一次关键数据等等。这个思路应该是很诱人的。
探讨:
Q:是否在ASP.NET代码的任何地方都可以使用计时器呢?
A:我没有测试过在普通*.aspx中插入计时器的情形。但从B/S程序的特点来看,即使在*.aspx中插入计时器可行,也不是一种好的选择。因为对于B/S程序来说,服务器接到客户端的请求本身就是一个事件,在这个事件处理过程中,服务器必须迅速的作出回应,为客户端产生相应的HTML代码,然后结束这一过程。如果在*.aspx使用计时器(如果允许的话),则第一没有太大必要,第二很容易使系统因为插入的计时器过多(因为每一次*.aspx的执行都有可能插入一个新的计时器)而使系统瘫痪。
因此,我建议只在global.asax的Application_OnStart中使用比较安全一些
OK,关于discuznt和asp.net c# 邮件定时发送。的内容到此结束了,希望对大家有所帮助。
- 上一篇:一对一辅导补习班?一对一补习班怎么收费
- 下一篇:北京二建报名(北京二建怎么报名)
- 最近发表