WebService发布过程及常见问题(含Win7)

合集下载

webservice常遇到的问题

webservice常遇到的问题

详解WebService开发中四个常见问题问题一:WebService与方法重载首先说明,WebService不支持方法重载。

下面举例说明。

例如定义如下WebService接口:先来看方法sayHello(),如果客户端发送如下SOAP请求:从SOAP请求我们可以看出客户端需要调用方法为sayHello(),所传递的参数为11,但是无法知道是整数的11,还是字符串"11",所以也就无法确定所调用的方法是哪一个。

接下来看一下sayHello2(),如果客户端传递的参数只包括一个id值,例如:还是无法判断调用的是哪个方法,因为可以理解为客户端传递的第二个参数为空(Null)。

通常情况下,在发布一个含有重载方法的WebService时会有异常发生,或者当调用一个方法时,服务器端报告找不到相对应的方法。

问题二:我的数据被修改了?先来看WebService接口:这里需要注意的是WebService的方法sayHello()的参数是一个接口,而不是一个具体类(例如Aegis绑定就允许直接发布这样的 WebService)。

在客户端调用sayHello()的时候传递一个Person对象,它实现了IPerson接口。

经过中间一系列的XML和对象之间的转换过程,服务器端得到的只是一个实现了IPerson 接口的实例,它不一定就是一个Person对象,如果要强制将其转换为Person,就有可能抛出异常。

问题的根源在于Aegis将XML转换为Java对象是通过Proxy或CGlib这类的工具生成一个“代理类”实现IPerson接口,然后创建这个代理类的一个实例,那它肯定不是一个Person了。

问题三:循环引用还是先来看一个例子。

下面是WebService的接口:请注意,Teacher和Student是一对多的“双向”关系。

在这种情况下,我们可以想一下如何将一个Teacher对象转换成一段XML?您可能想到下面的答案:看到了吧,XML竟然也会进入“死循环”。

Web服务故障解决

Web服务故障解决

Web服务故障排障步骤Web服务是【Window 2000/2003】服务器中应用最普遍服务之一,因此也是网管员接触最多的服务。

下面简要介绍一下基于【Windows Server 2003】的Web服务器最容易出现的故障,以及在排除这些故障时应该遵循的一般步骤。

1.Web服务器没有响应(1)检查是否启用了网络连接。

在桌面上用鼠标右键【网上邻居】图标,在弹出的快捷菜单中执行【属性】命令,打开【网络连接】窗口。

然后在网络连接状态列表中检查用于Web服务器访问地连接是否为已连接,如图3-1所示。

图3-1 检查网络连接状态(2)检查【Services】是否正在运行。

在键盘上同时按下【Ctrl+Alt+Delete】组合键,在弹出的【Windows安全】对话框中单击【任务管理器】按钮,打开【Windows任务管理器】对话框。

然后单击【进程】标签,在进程列表中检查是否有【Services】映像名称存在,如图3-2所示。

图3-2 查看进程列表(3)重新启动IIS服务。

依次单击【开始】→【管理工具】→【Internet信息服务(IIS)管理器】,打开【Internet信息服务(IIS)管理器】控制台窗口。

在左窗格中用鼠标右键单击服务器名称,在弹出的快捷菜单中指向【所有任务】选项,执行【重新启动IIS】命令,并在【停止/启动/重启动】对话框中单击【确定】按钮,如图3-3所示。

图3-3 重新启动IIS(4)检查启动类型是否设置为【自动】。

在桌面上用鼠标右键单击【我的电脑】图标,在弹出的快捷菜单中执行【管理】命令,打开【计算机管理】控制台窗口。

然后展开【服务和应用程序】目录,单击选中【服务】选项。

在右窗格的服务列表中找到【World Wide WebPublishing Service】选项,检查其【启动类型】是否显示为【自动】,以及【状态】列表中是否显示为【已启动】,如图3-4所示。

图3-4 检查WWW发布服务的工作状态2.即使Web服务器正在运行,并且启用了网络和Internet连接,用户也无法访问Web 服务器。

webservice四种发布方式及客户端调用

webservice四种发布方式及客户端调用

WebService 四种发布方式总结Author:yczhang1.CXF方式CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为:ng.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改was,于是改用了axis2方式,下文会介绍。

该问题在此处做个记录,以后使用cxf与was的时候需要注意!!!使用cxf+spring搭建WebService:第一步,添加jar包。

此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包:而泰康的was环境则需要如下jar包:明显的多了很多,原因应该是服务器jar包池的不同。

根据错误提示缺什么补什么就可以了,注意jar包勿重复。

第二步,配置web.xml文件,如下(重要的地方已标记):<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:/applicationContext.xml</param-value> </context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener </listener-class></listener><!-- Character Encoding filter --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFil ter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>CXFServlet</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-c lass><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>CXFServlet</servlet-name><url-pattern>/webservice/*</url-pattern></servlet-mapping>上述标记的地方,第一处是spring配置文件路径;第二出是wsdl地址内容;第三步,编写接口类与实现类,注意注解接口类@WebServicepublic interface SendService {public boolean sendOA(@WebParam(name="param")String param);public boolean sendOrg(OrgEntity org);}实现类@WebService(endpointInterface="com.service.SendService",serviceName=" sendService")public class SendServiceImpl implements SendService{public boolean sendOA(String param) {System.out.println("-------sendOA---------param:"+param);if(param.equals("zhoujian")){return true;}return false;}public boolean sendOrg(OrgEntity org) {System.out.println("-------sendOrg--begin-------");return true;}}第四步,Spring配置文件“jaxws:client”该标签可以不必写,访问时可以手动拼接该url 第五步,发布,直接部署到服务器,访问:2.Xfire方式据说xfire方式已经很老了,但个人感觉,xfire方式很简单且容易配置,不知为啥过时了,也没感觉cxf、axis2哪里先进,我当时卡在cxf与was搞不定时想尝试xfire方式被周经理给拒绝了。

Win7配置IIS及常见问题

Win7配置IIS及常见问题

Win7和Vista一样都内置了最新的IIS7,那么ISS7要如何安装配置和使用呢?在IIS7下ASP 又该如何配置呢?本站整理了相关操作步骤,如下。

不过在操作之前请将Win7的UAC设置到最低,否则会它会非常讨厌的跳出来。

1.进入Win7的控制面板,选择“程序”然后在点击“程序和功能”,在左侧选择的“打开或关闭Windows功能”在出现的列表中选择IIS7然后确定。

2.安装完成后,再次进入控制面板,选择“管理工具”,双击Internet(IIS)管理器选项,进入IIS设置。

3.进入到IIS7控制面板。

4.选择Default Web Site,并双击ASP的选项。

5.IIS7中ASP父路径是没有启用的,要开启父路径,选择True即可。

6.配置IIS7的站点,单击右边的“高级设置”选项,可以设置网站的目录。

7、点击右侧的绑定...,设置网站的端口。

8、点击默认文档,设置网站的默认文档。

至此,Windws 7的IIS7设置已经基本完成了,ASP+Access程序可以调试成功。

让同一局域网里面的人也能访问自己的电脑上的网站。

1、依次选择:开始---所有程序---管理工具---高级安全Windows 防火墙。

(有的电脑在所有程序里面可能没有”管理工具”,这时可以开始----在空白处鼠标右击---属性---自定义---找到系统管理工具,选择“在所有程序菜单上显示”,这样在所有程序里面就有管理工具了)2、在高级安全Windows 防火墙的左边栏,选择“入站规则”。

3、在右边栏选择"新建规则“。

4、在弹出的窗口依次选择:选中端口---下一步---选中TCP以及特定本地端口,填入要开放的端口号(这里填入80,当让也可以选择开放所有端口)---下一步---选中允许连接---下一步---选中所有选项---下一步---填入名称(这里填入IIS)---完成。

完成这些之后,跟你处在同一个局域网里面的人就能访问到你电脑上的网站了,到此,在Win7上的ISS就和平时在XP里面一样了。

webservice面试题

webservice面试题

webservice面试题Web Service 面试题Web Service 是一种基于网络的应用程序间通信的技术,它使用标准化的 XML 格式来进行数据交换,提供了一种跨平台、跨语言的通信方式。

在企业级应用中,Web Service 是非常重要的一环。

在面试中,面试官可能会问及与 Web Service 相关的问题,以下是一些常见的 Web Service 面试题。

1. 解释什么是 Web Service?Web Service 是一种软件系统,通过网络进行通信和交互。

基于标准化的 XML 协议,Web Service 提供了一种跨平台、跨语言的通信方式。

通过Web Service,应用程序可以以松耦合的方式进行交互和集成,实现系统之间的数据共享和功能共享。

2. Web Service 是如何实现跨平台、跨语言的通信的?Web Service 使用标准的 XML 协议,如 SOAP(Simple Object Access Protocol)、WSDL(Web Services Description Language)和UDDI(Universal Description, Discovery and Integration),来进行数据的封装、描述和发布。

这样,不同平台、不同语言的应用程序都可以通过解析 XML 数据来理解和处理 Web Service 的请求和响应。

3. SOAP 是什么?它在 Web Service 中的作用是什么?SOAP 是一种基于 XML 的通信协议,用于在 Web Service 之间传递消息。

SOAP 将消息封装为 XML 格式,并定义了一些规范和标准,如消息的头部、内容和处理方式等。

SOAP 使得不同平台、不同技术栈的应用程序可以通过解析 XML 来理解和处理消息,实现互通与交互。

4. WSDL 是什么?它在 Web Service 中的作用是什么?WSDL 是一种 XML 格式的文件,用于描述 Web Service 的接口和操作。

webservice函数用法

webservice函数用法

webservice函数是一种常用的网络服务接口,用于实现不同系统或评台之间的数据交换和通信。

它可以帮助开发人员轻松地通过网络调用远程的服务程序,并在不同的评台上进行数据交换和通信。

本文将对webservice函数的用法进行详细介绍,希望能够对相关开发人员有所帮助。

一、webservice函数的定义webservice函数是一种基于网络的服务接口,它使用标准的HTTP协议进行数据传输,通常通过SOAP(Simple Object Access Protocol)来进行数据的封装和传输。

开发人员可以通过webservice函数轻松地将自己的程序封装成一个web服务,并通过网络对外提供服务。

二、webservice函数的语法在大多数的编程语言中,webservice函数的语法都比较相似。

例如在Java语言中,可以通过JAX-WS或JAX-RPC等方式来实现webservice函数。

在.NET评台中,可以使用来实现webservice函数。

一般来说,webservice函数的语法包括以下几个方面:1. 定义webservice函数的接口2. 实现webservice函数的具体功能3. 部署webservice函数到服务器上三、webservice函数的用法使用webservice函数可以让开发人员轻松地实现不同系统之间的数据交换和通信,下面将介绍webservice函数的常用用法。

1. 定义webservice函数的接口在实际开发中,首先需要定义webservice函数的接口,即需要确定需要提供哪些服务。

开发人员可以根据实际需求,定义出webservice函数的各种接口,包括输入参数和返回值等。

2. 实现webservice函数的具体功能一旦确定了webservice函数的接口,接下来就需要实现具体的功能。

开发人员可以根据接口的定义,编写相应的代码来实现webservice函数的功能。

在实现的过程中,需要考虑数据的安全性和可靠性等问题。

jax-ws webservice部署到tomcat 遇到的问题

jax-ws webservice部署到tomcat 遇到的问题

jax-ws方式的webservice部署到tomcat中会遇到的问题1 启动服务器后,报如下错误:解决方法:在项目的构建路径中加入jax-ws的相关jar包2 出现如下错误信息,表示.apt_generated源码包下没有自动生成jax-ws相应的类,所以提示是否已经用apt生成了。

信息: WSSERVLET12: JAX-WS context listener initializing2012-3-1 21:58:41 com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized严重: WSSERVLET11: failed to parse runtime descriptor: runtime modeler error: Wrapper class com.test.webservice.jaxws.Add is not found. Have you run APT to generate them?com.sun.xml.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.test.webservice.jaxws.Add is not found. Have you run APT to generate them?如果生成了,部署到tomcat的项目文件中会在服务类下生成一个jaxws包:对本例而言,jaxws中有如下文件:解决办法:确保构建路径中的source选项卡中选择了.apt_generated,如果还没生成,clean 下项目应该就没问题了3 误删除了自动生成的.apt_generated源码包When the Feature Pack for Web Services 1.0 facet is enabled, the .apt_generated folder is created in the Web project. If this folder is accidentally deleted, it is automatically restored, but it no longer has the properties of a source folder. Thus, the classes in this folder are not built intothe class path for the Web project and ClassNotFound exceptions might occur after the Web project is deployed to the server.Resolving the problemAfter the folder is deleted, it is not present in the Java™ 2 Platform, Enterprise Edition (J2EE) perspective. Follow these steps to restore the source folder:解决办法:1.Open the Resource perspective. You should see the .apt_generated folder, which is automatically regenerated.2.Open the .settings/ponent file.3.From the Source view, delete the following line:<wb-resource deploy-path="/WEB-INF/classes" source-path="/.apt_generated"/>4.Right-click the project and select Properties > Java Build Path5.On the Source tab, add .apt_generated to the list of Source folders.发布成功后,会出现如下界面:。

webservice接口发布概述

webservice接口发布概述

webservice接⼝发布概述在项⽬中,需要系统启动后,同时发布webservice接⼝,其中需要注意地⽅,在这⾥提醒⼀下:1. service-config.wsdd 发布⽂件中的发布接⼝类(com.hollycrm.lnunicom.sheet.facade.impl.SheetFacadeProvider);在该⽂件中的发布类貌似不能使⽤接⼝,只能使⽤⼀般java类,当然他可以继承某个接⼝。

2. 真正执⾏的类是SheetFacadeImpl,项⽬中的类关系如下接⼝: sheetFacade2个实现类:SheetFacadeProvider SheetFacadeImpl关系:发布⽂件中使⽤sheetFacadeProvider进⾏发布,⽽在产⽣该类对象时,使⽤构造⽅法来产⽣⼀个sheetFacadeImpl对象,代码如下:这样,就产⽣了⼀个sheetFacadeImpl对像,然后在程序中通过使⽤sheetFacadeProvider对象的⽅法来调⽤sheetFacadeImpl对象的⽅法,代码如下:这样真正执⾏的是接⼝⽅法是sheetFacadeImpl中的⽅法generateSheet()。

3. web.xml⽂件中的配置----启动项⽬是发布webservice接⼝<servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> <load-on-startup>100</load-on-startup> </servlet> <servlet><servlet-name>AxisServlet</servlet-name> <display-name>Apache-Axis Servlet</display-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class></servlet><servlet-mapping><servlet-name>SOAPMonitorService</servlet-name> <url-pattern>/SOAPMonitor</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AdminServlet</servlet-name><url-pattern>/servlet/AdminServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/servlet/AxisServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>*.jws</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping><!-- webservice 接⼝ END -->4. 注意 axis 包的版本问题 Name: org/apache/axis Implementation-Title: Apache Axis Implementation-Version: 1.2 1505 May 3 2005 Implementation-Vendor: Apache Web Services。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WebServices生成发布过程及常见问题的解决方法本文主要讲诉:一、VS中创建Web服务项目。

二、WebService生成发布三、网站发布四、故障及解决方法五、如何访问WebService六、Win 7下的WebService发布和使用WebService需要首先安装IIS服务,IIS的安装过程这里就不在叙述,baidu 上到处都是。

1、VS中创建Web服务项目在VS中“文件”->“新建”->“网站”->“ Web服务”。

创建过程很简单,和其他项目的创建过程基本相同,这里就不多说了。

这里我创建了一个名为MyWebService的解决方案,如下图所示,系统会自动添加一个名为Service的asmx文件,并在App_Code文件夹中添加一个同名的代码容器类。

我们可以将这两个文件删除,然后依次在上点击右键,选择“添加新项”。

在打开的窗口中选择“Web服务”,添加一个新的Web服务,命名为MyService。

我们同样可以将这两个名为Service的文件重命名为MyService。

但在重命名的时候,有四个地方的名称是必须更改的。

1、将Service.cs的名称改为MyService.cs2、将Service.asmx的名称改为MyService.asmx3、将Service.cs文件中的类名public class Service : System.Web.Services.WebService改为public class MyService : System.Web.Services.WebService同时修改构造函数。

4、将Service.asmx文件中Class属性指向MyService,修改如下<%@WebService Language="C#"CodeBehind="~/App_Code/MyService.cs"Class="Service" %> 改为<%@WebService Language="C#"CodeBehind="~/App_Code/MyService.cs"Class="MyService"%> 有点啰嗦了,其实文件中如果有名称不匹配的话,一般在调试的时候系统都会给出错误提示。

完成后的解决方案如图所示注:Web.Config文件是生成时系统自动附加的。

2、完成创建以后,我们就可以调试生成解决方案。

调试通过后,将WebService发布。

具体步骤如下:右键点击项目,在弹出菜单中选择“发布网站”弹出发布位置选择窗口如图所示,这里我们选择已经创建好的目录D:\MyService,点击“确定”按钮发布完成,这时我们可以到D:\MyService中查看发布文件。

如下图所示。

3、下一步,我们需要将Myservice文件夹拷贝到C:\Inetpub\wwwroot目录下(重要)。

如下图所示然后依次右击“我的电脑”->“管理”->“服务和应用程序”->“Internet信息服务(IIS)管理器”打开IIS管理器,或者在控制面板中,通过“管理工具”打开“Internet信息服务(IIS)管理器”,如下图所示展开“网站”节点,右键点击“默认网站”节点,依次选择“新建”->“虚拟目录”,打开虚拟目录创建窗口。

如下图所示。

点击“下一步”输入一个别名,如“MyServiceTest”(此处不一定要和WebService文件名相同)。

点击“下一步”进入路径选择窗口,如图所示。

其中路径名必须选择是C:\Inetpub\wwwroot目录下,新拷贝的WebService文件副本。

如上图所示。

点击下一步,开始设置访问权限。

作为测试,我们可以将其全部选中。

如下图所示。

点击下一步,系统会弹出安全警告,点击“是”按钮,然后点击“完成”按钮,完成WebService 发布。

4、截止到此,WebService已经发布完成,下面可以开始访问了。

选择我们刚刚创建的虚拟目录“MyServiceTest”,右键点击,选择“浏览”操作,打开浏览窗口,如图所示。

在上图右侧的浏览窗口中,点击MyService.asmx连接项,打开查看WebService中的可用接口。

如下图所示:注意:此过程会出现如下的错误提示A)、配置错误,提示内容如下:说明: 在处理向该请求提供服务所需的配置文件时出错。

请检查下面的特定错误详细信息并适当地修改配置文件。

分析器错误信息: 无法识别的配置节“connectionStrings”源错误:行 10:行 11: </appSettings>行 12: <connectionStrings/>行 13: <system.web>行 14: <!--源文件: C:\Inetpub\wwwroot\MyService\web.config 行: 12--------------------------------------------------------------------------------版本信息: Microsoft .NET Framework 版本:1.1.4322.573; 版本:1.1.4322.573 出现该问题的原因如下:我们使用vs2005创建WebService 需要使用.net framework 2.0,而在Windows Server 2003中,iis 默认.net 环境是1.1。

这时将发生不可识别的节点的问题。

因为connectionStrings 是.NET 2.0中的新增节点。

解决方法如下:首先确保系统中已经安装了.NET 2.0,然后更改IIS 使用的ASP .NET 版本。

操作过程如下:打开windows “命令提示符”,即在运行中输入“cmd ”,然后输入以下字符串 C:WINDOWS\\Framework\v2.0.50727\aspnet_regiis -i –enable ,执行安装操作。

如果当前系统未安装.NET 2.0平台,则会提示“系统找不到指定的路径”,否则,将执行安装操作,如下图所示:安装完成后,再次尝试执行“浏览”操作。

B )、分析器错误,提示内容如下:出现该问题的原因:(1)、在步骤一中,重命名文件时,未完成所有文件名的统一修改。

一般情况下,确保步骤一罗列出的所有位置的位置的文件名统一,即可解决该问题。

(2)、如果您可以保证没有文件名称错误。

可以采用和上一个问题相同的解决方法来解决该问题。

5、远程访问一般在远程机器上调用本机发布的WebService的地址即为本机IP+虚拟目录,例如,本次创建的WebService的访问地址如下:http://192.168.2.94/MyServiceTest/MyService.asmx查看该地址的方法为,打开WebService服务页,如下图所示点击HelloWorld公共接口连接。

跳转至HelloWorld定义页。

如图所示。

点击“调用”按钮,将打开浏览器,显示调用结果。

如图所示:将浏览器地址栏中地址http://localhost/MyServiceTest/MyService.asmx/HelloWorld 中的localhost换成本机IP(例如192.168.2.94),然后去掉最后的/HelloWorld,即为Webervice的访问地址http://192.168.2.94/MyServiceTest/MyService.asmx。

如果需要在远程C#项目中需要使用WebService,只需添加Web引用,然后在URL 中输入以上地址即可。

详细过程可以参考相关教材,或者求助谷、百两位大哥,遵从个人喜好。

6、Win 7下发布WebServiceWin7下WebService的发布相对较为简单。

从文件拷贝到创建虚拟目录的过程都与2003下完全相同,这里不再赘述。

我们同样创建一个名为MyServiceTest的虚拟目录,如下图所示然后在右侧的“MyServiceTest主页”区域中找到“目录浏览“图标,如下图所示双击“目录浏览”图标打开目录浏览功能,如下图所示点击右侧的“启用”按钮,启用目录浏览功能,如下图所示。

然后双击左侧的“MyServiceTest”虚拟目录节点,回到“MyServiceTest主页”选区。

右键点击“MyServiceTest”虚拟目录节点,在弹出的菜单中选择“转换为应用程序”弹出应用程序转换窗口,如下图所示。

直接点击“确定”按钮。

转成功,我们可以看到,此时虚拟目录图标已经发生了变化,如下图所示。

此时,在“MyServiceTest”虚拟目录节点上点击鼠标右键,依次选择“管理应用程序”->“浏览”即可在浏览器中查看MyService。

2011-9-8补充:在本机上发布的WebService,如果本机能访问,而远程机器无法访问,一帮是由于Windows防火墙处于打开状态造成的。

将其关闭即可本人亦初学WebService,以上均为个人见解及实际中遇到的问题和解决方法。

希望对初学者有用。

相关文档
最新文档