??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲成人精品一区二区三区,国产精品精品国产一区二区,日韩精品一区第一页http://www.aygfsteel.com/hwpok/category/47527.htmlDEBUG - 天道酬勤zh-cnFri, 15 Aug 2014 17:48:13 GMTFri, 15 Aug 2014 17:48:13 GMT60- weblogic12c配置http://www.aygfsteel.com/hwpok/archive/2014/08/15/417009.html惠万?/dc:creator>惠万?/author>Fri, 15 Aug 2014 10:42:00 GMThttp://www.aygfsteel.com/hwpok/archive/2014/08/15/417009.htmlhttp://www.aygfsteel.com/hwpok/comments/417009.htmlhttp://www.aygfsteel.com/hwpok/archive/2014/08/15/417009.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/417009.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/417009.html1.1 准备工作Q?/span>
1.1.1 (g)查系l是否安?/span>JDK
I. (g)查命令ؓ(f)Q?/span>
echo $JAVA_HOME
如果q回l果为空Q说明没有当前系l没有安?span style="line-height: 22px; font-family: Arial">JDKQ需要安?/span>JDKQ需要下?/span>JDK安装文g
II. 下蝲JDK安装文gQ?/span>
下蝲文gQ?/span>jdk-6u45-linux-i586.bin
下蝲地址Q?a target="_blank">http://www.oracle.com/technetwork/java/javase/downloads/index.html
III. 安装JDKQ?/span>
Q?/span>1Q给/usr目录下创?nbsp;java目录Q如果不存在再创建)(j)Q命令:(x)
cd /usr
sudo mkdir java
Q?span style="line-height: 22px; font-family: Arial">2Q移?nbsp;
jdk-6u45-linux-i586.bin 文g?span style="line-height: 22px; font-family: Arial">/usr/java目录
- sudo mv jdk-6u45-linux-i586.bin /usr/java
sudo mv jdk-6u45-linux-i586.bin /usr/java
Q?span style="line-height: 22px; font-family: Arial">3Q给 jdk-6u45-linux-i586.bin分配权限
- sudo chmod 777 jdk-6u45-linux-i586.bin
sudo chmod 777 jdk-6u45-linux-i586.bin
Q?span style="line-height: 22px; font-family: Arial">4Q安?/span>JDK Q命令:(x)
- sudo ./jdk-6u45-linux-i586.bin
sudo ./jdk-6u45-linux-i586.bin
Q?span style="line-height: 22px; font-family: Arial">5Q配|环境变量(dJDK到环境变量)(j)
sudo vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.6.0_45 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
注意(g)?/span>/usr/java 目录?nbsp;jdk的版本号Q是否与配置?/span>jdk版本号一_(d)?/span>/usr/java目录?/span>jdk版本为准Q?/span>
Q?span style="line-height: 22px; font-family: Arial">6Q刚才d的环境变量即使生效,命o(h)Q?/span>
source /etc/profile
Q?/span>7Q检?/span>jdk安装情况 Q?/span>
1.1.2 准备weblogic安装文g
I. 下蝲weblogic安装文gQ?/span>
下蝲文gQ?/span>wls1036_dev.zip
下蝲地址Q?/span>
II. 上传weblogic安装文g到用L(fng)录:(x)
上传weblogic安装文g到用L(fng)?/span>
1.2 安装weblogicQ?/span>
1.2.1 配置weblogic环境变量
I. 解决weblogic安装文g到指定目?/span>
- sudo unzip -d weblogc1036 wls1036_dev.zip
-
- sudo chmod 777 -R weblogc1036
-
- sudo mv weblogc1036 /usr/
sudo unzip -d weblogc1036 wls1036_dev.zip
sudo chmod 777 -R weblogc1036
sudo mv weblogc1036 /usr/
II. 配置weblogic环境变量 MW_HOME
sudo vi /etc/profile
export MW_HOME=/usr/ weblogc1036
使刚才添加的环境变量即生效Q命令:(x)
source /etc/profile
1.2.2 安装weblogic服务
I. 打开 $MW_HOME 目录
II. (g)查当前环境是否符?span style="line-height: 23px; font-family: Arial">weblogic安装要求
. $MW_HOME/configure.sh
III. 配置weblogic初始化参?/span>
- . $MW_HOME/wlserver/server/bin/setWLSEnv.sh
. $MW_HOME/wlserver/server/bin/setWLSEnv.sh
IV. 创徏weblogic 域(domainQ?/span>
- . $MW_HOME/wlserver/common/bin/config.sh
. $MW_HOME/wlserver/common/bin/config.sh
在安装过E,基本上不需要去做修改,只需要一直下一步即?在创E中需要修改的是配置weblogic域的名称 Q登录̎户和密码 ?nbsp;域的端口?/span>
如果在服务器上直接操作有囑Ş化界面,Ҏ(gu)提示创徏weblogic域,如果是远E则需要根据提C选择相关配置?qing)域名称Q登录̎Pd密码Q端口号{信息,q程d域最后一步比较慢Q徏议等待直到出现提CZ?“创徏成功”字样Ӟ退出否则启动,停止{sh脚本没有被创徏
V. 启动weblogic服务Qƈq行刚才创徏?/span>domian I间
打开刚才创徏域的目录执行
- . $MW_HOME/user_projects/domains/base_domain/startWebLogic.sh
. $MW_HOME/user_projects/domains/base_domain/startWebLogic.sh
试weblogic服务是否安装成功Q?/span>
在浏览器地址栏输?nbsp;Q?/span>http://localhost:7001/console
可以打开weblogic理登陆面Q如?/span>weblgoc 域管理̎户和密码dQ进?/span>weblogic理界面Q说?/span>weblogic服务安装成功Q?/span>
1.2.3 部vjava web目
I. 解决java目部v?/span>weblogic中不能进行查询数据库操作
Q?span style="line-height: 22px; font-family: Arial">1Q下载ƈ上传 antlr-2.7.6.jar ?nbsp;$MW_HOME/server/lib/ 目录
Q?span style="line-height: 22px; font-family: Arial">2Q修改刚才创建域中配|文?nbsp; setDomainEnv.sh
- sudo vi $MW_HOME/user_projects/domains/base_domain/bin/setDomainEnv.sh
sudo vi $MW_HOME/user_projects/domains/base_domain/bin/setDomainEnv.sh
d PRE_CLASSPATH="${WL_HOME}/server/lib/antlr-2.7.6.jar"
Q?span style="line-height: 22px; font-family: Arial">3Q重新启?nbsp;weblogic?nbsp;服务Q?/span>
关闭 Q?/span>
- . $MW_HOME/user_projects/domains/base_domain/bin/stopWebLogic.sh
. $MW_HOME/user_projects/domains/base_domain/bin/stopWebLogic.sh
启动 Q?/span>
- . $MW_HOME/user_projects/domains/base_domain/startWebLogic.sh
. $MW_HOME/user_projects/domains/base_domain/startWebLogic.sh
II. ?span style="line-height: 23px; font-family: Arial">java目部v?/span>weblogic域中
目?span style="line-height: 22px; font-family: Arial">java web目打包成后~名称?#8220; .war ”的文Ӟ上传?/span>linux服务器指定目?/span>
?span style="line-height: 22px; font-family: Arial">weblogic ?nbsp;理界面Q点d侧导航菜单中?/span>”部v” ,打开部v目面Q找到对应的目war包,点击安装Q根据提C行部|即可?nbsp;例如Q?/span>xabeschrm.war
试目Q是否部|成?nbsp;Q?/span>
在浏览器地址栏输?nbsp;Q?/span>http://localhost:7001/xabeschrm
使用正确的̎户和密码dxabeschrmpȝQ即部v成功Q?/span>
1.2.4 问题?qing)解军_法和修改?/span>configure.sh文g
I. MW_HOME 应该指定C个目?/span>
启动Ӟ偶尔?x)?nbsp;“MW_HOME 应该指定C个目?#8221;错误解决办法Q?/span>
source /etc/profile
Q环境变量生效Q?/span>
II. 修改后的configure.sh文g内容
configure.sh
- #!/bin/sh
-
-
- # ****************************************************************************
-
- # This script is used to setup certain artifacts in a zip distribution after
-
- # the extraction process. This script has to be rerun whenever the target
-
- # location is moved to another folder or machine
-
- #
-
- # JAVA_HOME and MW_HOME need to be configured prior to invoking this script
-
- # ****************************************************************************
-
-
- SCRIPT_DIR="$(cd $(dirname $0) && pwd)"
-
-
- # Users must set $MW_HOME variable
-
- if [ -z "$MW_HOME" ]; then
-
- echo "ERROR: You must set MW_HOME and it must point to a directory".
-
- exit 1;
-
- fi
-
-
- if [ ! -d $MW_HOME ]; then
-
- echo " where an installation of WebLogic exists. Ensure you point"
-
- exit 1;
-
- fi
-
-
-
- if [ ! "$(ls -A $MW_HOME)" ]; then
-
- echo " this variable to the extract location of the zip distribution."
-
- exit 1;
-
- fi
-
-
- # Users must set $JAVA_HOME variable
-
- if [ -z $JAVA_HOME ]; then
-
- echo "ERROR: You must set JAVA_HOME and point it to a valid location"
-
- exit 1;
-
- fi
-
-
- if [ ! -d "${JAVA_HOME}/bin" ]; then
-
- echo " of where your JDK has been installed"
-
- exit 1;
-
- fi
-
-
- # Setup the WLS environment
-
- . ${MW_HOME}/wlserver/server/bin/setWLSEnv.sh
-
-
- # Generate .product.properties and the registry.xml required for configuration
-
- # provisioning
-
- ${JAVA_HOME}/bin/java -Dant.home=${MW_HOME}/modules/org.apache.ant_1.7.1 \
-
- org.apache.tools.ant.Main -f ${MW_HOME}/configure.xml

]]>- webservice复习(fn)cxfhttp://www.aygfsteel.com/hwpok/archive/2014/07/07/415563.html惠万?/dc:creator>惠万?/author>Mon, 07 Jul 2014 13:42:00 GMThttp://www.aygfsteel.com/hwpok/archive/2014/07/07/415563.htmlhttp://www.aygfsteel.com/hwpok/comments/415563.htmlhttp://www.aygfsteel.com/hwpok/archive/2014/07/07/415563.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/415563.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/415563.htmldemo用的是cxf 3.0
接口:
1
package com;
2
3
import javax.jws.WebParam;
4
import javax.jws.WebService;
5
6
@WebService
7
public interface HelloWorldServiceInf
8

{
9
public String sayHello(@WebParam(name = "username")
10
String username);
11
}
2. 实现c?br />
package com;

import javax.jws.WebService;

import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;


@WebService(endpointInterface="com.HelloWorldServiceInf",serviceName="helloWorldService")

public class Server implements HelloWorldServiceInf
{


public String sayHello(String username)
{
return "Hello,"+username;
}


public static void main(String[] args)
{
Server impl=new Server();
JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean();
factoryBean.setAddress("http://localhost:9000/hello");
factoryBean.setServiceClass(HelloWorldServiceInf.class);
factoryBean.setServiceBean(impl);
factoryBean.getInInterceptors().add(new LoggingInInterceptor());
factoryBean.getOutInterceptors().add(new LoggingOutInterceptor());
factoryBean.create();
}
}


3. 客户端调?br />
1
import org.apache.cxf.endpoint.Client;
2
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
3
4
public class ClientX
5

{
6
public static void main(String[] args)throws Exception
7
{
8
String wsdlUrl = "http://localhost:9000/hello?wsdl";
9
JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
10
Client client= factory.createClient(wsdlUrl);
11
Object[] res = client.invoke("sayHello", "hwp");
12
System.out.println(res[0]);
13
}
14
15
}
package com.cxf.client;

import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import com.cxf.interfaces.HelloWorldServiceInf;


public class Client
{

public static void main(String[] args)
{
JaxWsProxyFactoryBean factoryBean=new JaxWsProxyFactoryBean();
factoryBean.getInInterceptors().add(new LoggingInInterceptor());
factoryBean.getOutInterceptors().add(new LoggingOutInterceptor());
factoryBean.setServiceClass(HelloWorldServiceInf.class);
factoryBean.setAddress("http://localhost:9000/hello");
HelloWorldServiceInf impl=(HelloWorldServiceInf) factoryBean.create();
System.out.println(impl.sayHello("张三"));
}
}


]]> - webservice复习(fn)xfire生成代码(?http://www.aygfsteel.com/hwpok/archive/2014/07/06/415495.html惠万?/dc:creator>惠万?/author>Sun, 06 Jul 2014 06:53:00 GMThttp://www.aygfsteel.com/hwpok/archive/2014/07/06/415495.htmlhttp://www.aygfsteel.com/hwpok/comments/415495.htmlhttp://www.aygfsteel.com/hwpok/archive/2014/07/06/415495.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/415495.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/415495.html

{待验证Q有个小错误有时不媄(jing)响生成,点Finish卛_

然后目里就多了(jin)一?javac?/div>
只需x一个类Q在webservice?你当初选择的java package)下,有个叫xxxxxxClient.javac?/div>
打开Q找到mainҎ(gu)
自带?jin)例子,调用的地方,把mainҎ(gu)里的代码copyq去 改吧改吧的就可以?/div>
单吧~
-------------------------------------------------------------------------------------------
PSQ?/div>
如图2Q如果无法选择XFire生成Q则先cancel
右键目QMyEclipse --> Add XFire Web Service Capabilities --> Finish
OKQ重复图1

]]>
- webservice复习(fn)xfire调用方式http://www.aygfsteel.com/hwpok/archive/2014/07/06/415494.html惠万?/dc:creator>惠万?/author>Sun, 06 Jul 2014 06:40:00 GMThttp://www.aygfsteel.com/hwpok/archive/2014/07/06/415494.htmlhttp://www.aygfsteel.com/hwpok/comments/415494.htmlhttp://www.aygfsteel.com/hwpok/archive/2014/07/06/415494.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/415494.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/415494.html
package client;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import services.IReaderService;
import beans.Reader;
public class ReaderClient
{
public static void main(String[] args)
{
// q里是创Z个serviceQ需要传入一个接口类Q因为我们后面必调用相应的接口Ҏ(gu)
Service srcModel = new ObjectServiceFactory()
.create(IReaderService.class);
// 代理工厂Q这里是Z(jin)后面创徏相应的接口类
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
.newInstance().getXFire());
// webservice地址Q不需要加wsdl
String readerServiceUrl = "http://127.0.0.1:8080/myWebservice/services/readerService";
try
{
// 利用工厂q回相应的接口类
IReaderService readerService = (IReaderService) factory.create(
srcModel, readerServiceUrl);
//String str = readerService.sayHello("惠万?);
//System.out.println(str);
Reader reader = readerService.getReader("shun", "123");
System.out.println(reader);
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
}
}
调用方式2:
package client;
import java.net.MalformedURLException;
import java.net.URL;
import org.codehaus.xfire.client.Client;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ReaderClient2
{
public static void main(String[] args)
{
Client client = null;
try
{
client = new Client(
new URL(
"http://127.0.0.1:8080/myWebservice/services/readerService?wsdl"));
Object[] result1 = client.invoke("sayHello", new Object[] { "张三" });
System.out.println(result1[0]);
//Object[] result2 = client.invoke("getReader", new Object[] { "张三", "123456" });
Object[] result2 = client.invoke("getReaders", new Object[] { null });
Document xmlTree = (Document) result2[0];
System.out.println("x: " + xmlTree.toString());
anylizeElement(xmlTree);
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
}
private static void anylizeElement(Document xmlTree) {
Element element = xmlTree.getDocumentElement();
System.out.println(element.getFirstChild().getFirstChild()
.getNodeName());
System.out.println(element.getFirstChild().getFirstChild()
.getNodeValue());
NodeList children = element.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
Node node = children.item(i);
stepThrough(node);
}
}
private static void stepThrough(Node start) {
for (Node child = start.getFirstChild(); child != null; child = child
.getNextSibling()) {
if (child instanceof Node)// 去除多余的空?/span>
{
System.out.print("节点?" + child.getNodeName());
System.out.println("\t节点?" + child.getNodeValue());
}
if (child != null)
stepThrough(child);
}
}
}

]]> - webservice复习(fn)xfire发布服务(?http://www.aygfsteel.com/hwpok/archive/2014/07/06/415493.html惠万?/dc:creator>惠万?/author>Sun, 06 Jul 2014 06:33:00 GMThttp://www.aygfsteel.com/hwpok/archive/2014/07/06/415493.htmlhttp://www.aygfsteel.com/hwpok/comments/415493.htmlhttp://www.aygfsteel.com/hwpok/archive/2014/07/06/415493.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/415493.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/415493.html转自http://cxshun.iteye.com/blog/1273147
最q公司最q需要将以前提供出去的接口统一用一个标准来实现Q考虑到webserviceq个是标 准,因此我花旉大概学习(fn)?jin)一下webserviceQ也对JAVA的几个webservice框架q行?jin)一些小例子的学?fn)?br />
JAVA调用webserviceQ当你刚开始接触的时候你?x)觉得它是一个恶梦,特别是没有一个统一的标准实玎ͼ比v.net的那些几步就可以完成的webservice实现Q我们看着JAVA的实现真是伤?j)啊。但q是伤?j),我们也还是要完成的。JAVA也不乏比较好的实玎ͼ如xfire,jersey,CXF。有Z(x)说axis2Q那个东西,看着׃?j),它不包括在比较好里面Q比较差里面反倒有它的一席之位。怎么差,q里先不_(d)我们慢慢地来看看q几个框架的实现?br />
今天我们先一h看一下xfire的实玎ͼ接下来的几天我们?x)慢慢一h学习(fn)另外的框架?br />
1Q首先,当然是要下包啦,q个普通h都知道?a target="_blank" style="color: black;">http://xfire.codehaus.org/Download可以到这里去下,可以下all也可以下distribution。但q是下all的,免得一堆奇怪的问题搞得你一点信?j)都没?jin)?br />
包弄下来?jin)那么怎么办呢Q放q项目里啊。貌似废话,但很多h是不知道下下来要干什么用?br />
Z个新目Q比较我的是xfireWebserviceQ这里当然是建web目啦?span style="white-space: pre;">


我这里是把它所有的包都攑ֈq里面了(jin)Q毕竟我们写例子Q就没必要挑三拣四了(jin)Q随便点吧,如果想看看异怿息的朋友可以不把全部放进去,慢慢地加入,以后遇到错误也好排除Q但我们q里׃那么做了(jin)Q毕竟一般缺什么类那些的异常没什么难看的Q大家可以自己排除?br />
2Q我们首先来?jin)解一下xfire与其他webservice框架的不同,它最大的不同之处在于它需要一个接口,而且如果需要用xfire来调用相应的webservice必须知道接口的定义,感觉q里有点限制?jin)。但除了(jin)q点Qxfire调用webserviceQ那是相当的方便Q就跟调用本地方法一栗我们直接来看例子:(x)
首先是最重要的接口:(x)
Java代码

- public interface IReaderService {
- public Reader getReader(String name,String password);
- public List<Reader> getReaders();
- }
有接口,当然也要有实现类Q不然接口就没什么意义了(jin)?span style="white-space: pre;">
Java代码

- public class ReaderService implements IReaderService{
- public Reader getReader(String name,String password) {
- return new Reader(name,password);
- }
-
- public List<Reader> getReaders(){
- List<Reader> readerList = new ArrayList<Reader>();
- readerList.add(new Reader("shun1","123"));
- readerList.add(new Reader("shun2","123"));
- return readerList;
- }
- }
也看一下JAVABEANQReaderc:(x)
Java代码

- public class Reader{
- private static final long serialVersionUID = 1L;
- private String name;
- private String password;
-
- public Reader(){}
- public Reader(String name,String password) {
- this.name = name;
- this.password = password;
- }
- //Get/SetҎ(gu)省略
- public String toString(){
- return "Name:"+name+",Password:"+password;
- }
-
- }
注意Q我们这里的ReadercdC(jin)Serializable接口Qؓ(f)什么呢Q这里,首先我们需要了(jin)解webservice的原理,对于JAVA来讲Q如果我们需要在互联|上传对象,很多人当然会(x)惛_序列化,对了(jin)Q这里就是序列化Q因为我们需要把reader作ؓ(f)参数来传递。这在以前的版本中是需要强制实玎ͼ否则?x)报错,但现在的最新的版本Q其实最新的也是07q的Q因为xfire已经停止开发,被apache合ƈ为CXF目Q这个我们之后再Ԍ(j)已经不需要了(jin)Q至于是用什么方式实现的Q我们这里暂时不qQ因为它已经被合q到CXF中,我们如果要深入学?fn),应该学?fn)CXF较好?br />
3Q当我们完成上面的接口和JAVABEAN的编写后Q很多h?x)问Q我看很多webservice都会(x)有WSDL文gQ那你这个怎么来的Q在讲这个之前,我们来讨Z下什么是WSDL。也许很多公司提供的接口都还是只是一个HTTP地址Q返回XMLq样的格式,我们的也是。这有一个好处,也有一个坏处。好处是我们开发的隑ֺ了(jin)Q而坏处是我们需要提供给用户一堆说明文Ӟ每个q回的XML标签是什么意思,q倒也没啥Q但是比较?ch)而已。而webservice呢,坏处是我们开发的东西E微多了(jin)点,而好处是我们不用再写那么多说明文Ӟ因ؓ(f)有一个统一的说明,叫WSDLQ这个是webservice的说明文档,是统一的,无论什么语a都一P所以不存在谁看不懂的问题?br />
而这里,当我们部|完成xfire后,它就可以帮我们生成WSDL文g?br />
问题是怎么部vQ这个其实也单。我们在src目录下新Z个文件夹META-INFQ再建它的一个字文g夹xfireQ里面徏立文件services.xml。之后的l构如下Q?br /> 
有h?x)问Z么要建到src目录下,其实不是规定建到q里的,但因为我们需要让开发工具帮我们自己部vq几个文Ӟ所以我们放到这里,eclipse可以帮我们自己部v到tomcat或者其他的容器中。注意,q个文g所在文件夹层次是固定的Q不可以修改?br />
我们直接看一下servics.xml:
Xml代码

- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://xfire.codehaus.org/config/1.0">
- <service>
- <!-- webserviceq名称Q调用时需要指定这?nbsp;-->
- <name>readerService</name>
- <!-- q个一般是自己公司的网址Q意义不?nbsp;-->
- <namespace>http://test/HelloService</namespace>
- <!-- 接口c?nbsp;-->
- <serviceClass>com.xfire.servlet.IReaderService</serviceClass>
- <!-- 实现c?nbsp;-->
- <implementationClass>com.xfire.servlet.ReaderService</implementationClass>
- </service>
- </beans>
看着注释一般都没问题的?br />
4Q很多h以ؓ(f)q样p?jin),不,q没行,你指定了(jin)q个Q那别h怎么讉K呢。怎么把相应的h转发到xfire那里Q让它进行处理呢。这里又需要修改web.xml?jin)?br /> 修改后如下:(x)
Xml代码

- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- id="WebApp_ID" version="3.0">
- <servlet>
- <servlet-name>XFireServlet</servlet-name>
- <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>XFireServlet</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
- </web-app>
其实也就是添加了(jin)一个servlet和对应的mapping。接下来Q我们在览器上直接输入:
http://localhost:8080/xfireWebService/services/readerService?wsdl
我们可以看到Q?br />

q里昄的就是wsdlQ它?x)显C我们定义的Ҏ(gu)Q返回的cdQ这个文件我们这里就不分析了(jin)Q?a target="_blank" style="color: black;">http://webservices.group.iteye.com/group/topic/11467q位朋友在这里写得很清楚Q想?jin)解的朋友可以到q里看看?br />
5Q上面四步完成后Q我们就完成?jin)webservice的部|了(jin)。别人就可以调用相应的webservice来访问我们的Ҏ(gu)?jin)。下面我们就用xfire提供的client来访问一下我们刚才发布的webservice:
Java代码

- public class ReaderClient {
- public static void main(String[] args) {
- //q里是创Z个serviceQ需要传入一个接口类Q因为我们后面必调用相应的接口Ҏ(gu)
- Service srcModel = new ObjectServiceFactory().create(IReaderService.class);
- //代理工厂Q这里是Z(jin)后面创徏相应的接口类
- XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
- //webservice地址Q不需要加wsdl
- String readerServiceUrl = "http://localhost:8080/xfireWebService/services/readerService";
-
- try {
- //利用工厂q回相应的接口类
- IReaderService readerService = (IReaderService)factory.create(srcModel,readerServiceUrl);
-
- Reader reader = readerService.getReader("shun","123");
- System.out.println(reader);
- } catch (MalformedURLException e) {
- e.printStackTrace();
- }
- }
- }
q样Q我们看到输出结果ؓ(f)Q?br /> 
很简单的调用Q当我们取得接口后,一切就跟本C样了(jin)。xfire发布和调用webservice相对其他框架来说是简单很多的。接下来几天Q我们会(x)l箋学习(fn)另外的几个框ӞCXFQaxis2和jerseyQaxis2我们攑ֈ最后再Ԍ因ؓ(f)相对其他来说Q它的灵zL比较差Q而且比较ȝ(ch)?/span>
另外问个问题,有没有朋友知道怎么修改博客字体大小Q我修改完成后保存,它只?x)在代码D那里加?lt;span>标签Q但字体没有改变Q其他的也是一P有知道的朋友ȝ(ch)跟我说下?/span>

]]> - Xfire ?axis2 比较http://www.aygfsteel.com/hwpok/archive/2011/01/08/342577.html惠万?/dc:creator>惠万?/author>Sat, 08 Jan 2011 06:02:00 GMThttp://www.aygfsteel.com/hwpok/archive/2011/01/08/342577.htmlhttp://www.aygfsteel.com/hwpok/comments/342577.htmlhttp://www.aygfsteel.com/hwpok/archive/2011/01/08/342577.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/342577.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/342577.html
xfire:
发布服务:易用性强.
客户端调?生成代码能力不及(qing)axis2,兼容性不?qing)xfire.
axis2
发布服务:不及(qing)xfire易用.
客户端调? 生成代码较强,通用性较?支持多语a.
q几天做江西?sh)信的一个东?用xfire生成代码,调用老是出错.换成axis2一下就好了(jin).

]]> - Axis2 生成代码 ? 调用http://www.aygfsteel.com/hwpok/archive/2011/01/07/342558.html惠万?/dc:creator>惠万?/author>Fri, 07 Jan 2011 13:59:00 GMThttp://www.aygfsteel.com/hwpok/archive/2011/01/07/342558.htmlhttp://www.aygfsteel.com/hwpok/comments/342558.htmlhttp://www.aygfsteel.com/hwpok/archive/2011/01/07/342558.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/342558.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/342558.html用axis 生成代码一般会(x)产生两个c?
1.***CallbackHandler.java 是个抽象c?一般不?x)用?br />
2.***SmsInfStub.java一般用这个类
调用Ҏ(gu)如下:
public class Test


{

/** *//**
* <ul>
* <li>Description:[method of functional description]</li>
* <li>Created by [Huyvanpull] [2011-1-7]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
* @param args
* @throws RemoteException
*/
public static void main(String[] args) throws RemoteException

{
SmsInfStub ss = new SmsInfStub();
SmsInfStub.QueryBalance request = new SmsInfStub.QueryBalance();
request.setSequenceId(1);
request.setAccountCode("xxxxdf");
request.setAccountPasswd("dfaadd");
BalanceInfoType talanceInfoType = ss.QueryBalance(request).getBalanceInfo();
System.out.println(talanceInfoType.getRemainOutNetSmsAmount());
}
}

]]> - webservice ȝ一?/title>http://www.aygfsteel.com/hwpok/archive/2011/01/07/342500.html惠万?/dc:creator>惠万?/author>Fri, 07 Jan 2011 04:55:00 GMThttp://www.aygfsteel.com/hwpok/archive/2011/01/07/342500.htmlhttp://www.aygfsteel.com/hwpok/comments/342500.htmlhttp://www.aygfsteel.com/hwpok/archive/2011/01/07/342500.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/342500.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/342500.html
1.最的一U?br />
Ҏ(gu)Ҏ(gu)提供的wsdl生成本地javac?讉Kwebservicep调用本地cL有什么区别了(jin).
2.使用xfire的其中的一U调用方?代码如下:
import java.net.MalformedURLException;
import java.net.URL;

import org.codehaus.xfire.client.Client;





public class Test


{
public void test() throws MalformedURLException, Exception

{
Client client = new Client(new URL("http://58.58.33.33/sqtwebservice/UserManage.asmx?wsdl"));

Object[] resultXMLObjs = client.invoke("GetCurfee", new Object[]
{"huy88888", "123456" });
System.out.println(resultXMLObjs[0]);
}
public static void main(String[] args) throws MalformedURLException, Exception

{
Test test = new Test();
test.test();
}
}
3.使用axis的其中一U调用方?
import java.math.BigDecimal;
import java.net.MalformedURLException;
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;


/** *//**
* <ul>
* <li>Title:[ProviderJiangXiTelecom]</li>
* <li>Description: [江西?sh)?webservice]</li>
* <li>Copyright 2009 Upengs Co., Ltd.</li>
* <li>All right reserved.</li>
* <li>Created by [Huyvanpull] [2011-1-7]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*
* @version 1.0
*/
public class ProviderJiangXiTelecom


{
public void Webservice1()

{
try

{
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL("http://58.58.33.33/sqtwebservice/UserManage.asmx"));
call.setOperationName(new QName("http://tempuri.org/", "GetCurfee"));
call.addParameter("uname", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("pass", XMLType.XSD_STRING, ParameterMode.IN);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/GetCurfee");
call.setReturnType(XMLType.XSD_DECIMAL);

BigDecimal result = (BigDecimal) call.invoke(new Object[]
{ "huy88888","123456" });
System.out.println(result.doubleValue());
}
catch (ServiceException e)

{
e.printStackTrace();
}
catch (RemoteException e)

{
e.printStackTrace();
}
catch (MalformedURLException e)

{
e.printStackTrace();
}
}
public static void main(String[] args)

{
ProviderJiangXiTelecom providerJiangXiTelecom = new ProviderJiangXiTelecom();
providerJiangXiTelecom.Webservice1();
}
}

]]> - 关于webservice 又学?jin)一?/title>http://www.aygfsteel.com/hwpok/archive/2011/01/06/342418.html惠万?/dc:creator>惠万?/author>Thu, 06 Jan 2011 05:48:00 GMThttp://www.aygfsteel.com/hwpok/archive/2011/01/06/342418.htmlhttp://www.aygfsteel.com/hwpok/comments/342418.htmlhttp://www.aygfsteel.com/hwpok/archive/2011/01/06/342418.html#Feedback0http://www.aygfsteel.com/hwpok/comments/commentRss/342418.htmlhttp://www.aygfsteel.com/hwpok/services/trackbacks/342418.htmlq几天搞一个webwervice,Ҏ(gu)l了(jin)一个错误的地址,搞得我头?
最后下?jin)一个soap试工具,l于搞定?
它是soapUI

]]>
վ֩ģ壺
˳|
|
̫|
|
찲|
ʮ|
|
Դ|
ͬ|
|
˻|
|
|
|
|
|
|
|
ľ|
|
|
ɽ|
|
̨|
|
|
ຣʡ|
|
|
|
ʡ|
ϻ|
ˮ|
̳|
|
ڳ|
첼|
Ͻ|
|
|
|