MySQL性能优化的21个最佳实践
2013-06-09 16:12
579 查看
1. xfire
+ spring
发布webservice
2. 利用 javascript 调用发布的webservice
使用xfire
+spring
发布webservice其实很简单,遵循一下几个步骤即可
1. 想要发布成文webservice的类,必须实现接口
2. 3个配置文件(后面详细说)
下面针对以上步骤详细说明
关于1中的要求,给个例子就明白了
Itest.java 代码
package
test;
import
org.json.JSONException;
public
interface
IHello
{
public
String hello();
public
String helloTo(String name);
public
String getJsonData(String pageIndex,String pageSize);
}
HelloImpl.java 代码
package
test;
import
java.util.*;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpSession;
import
org.codehaus.xfire
.transport.http.XFire
ServletController;
import
org.json.JSONException;
import
org.json.JSONStringer;
public
class
HelloImpl
implements
IHello
{
public
String hello()
{
return
"hello"
;
}
public
String helloTo(String name)
{
return
" hello "
+ name +
"!"
;
}
private
void
example()
{
//使用session
HttpServletRequest request = XFire
ServletController.getRequest();
HttpSession session = request.getSession();
}
public
String getJsonData(String pageIndex,String pageSize)
{
String rtnValue = ""
;
rtnValue = ""
;
for
(
int
i=
0
;i<Integer.parseInt(pageSize);i++)
{
rtnValue = rtnValue + "{'lastname': 'last"
+ pageIndex +
"-"
+ i +
"', 'firstname': 'first"
+ pageIndex +
"-"
+ i +
"' },"
;
}
rtnValue = rtnValue + "{'lastname': 'last', 'firstname': 'last' }"
;
rtnValue = "{'context':["
+ rtnValue +
"],'pager':[{'totalRecord':'100','totalpage':'10','pageIndex':'"
+ pageIndex +
"','pageSize':'10'}]}"
;
return
rtnValue;
}
}
就这样写就可以了
关于三个配置文件
web.xml修改如下
xml 代码
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
web-app
xmlns
=
"http://java.sun.com/xml/ns/j2ee"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
version
=
"2.4"
xsi:schemaLocation
=
"http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
<!-- 配置文件路径 开始 -->
<
context-param
>
<
param-name
>
log4jConfigLocation
</
param-name
>
<
param-value
>
/WEB-INF/classes/log4j.properties
</
param-value
>
</
context-param
>
<
context-param
>
<
param-name
>
contextConfigLocation
</
param-name
>
<
param-value
>
/WEB-INF/classes/applicationContext*.xml
classpath:org/codehaus/xfire
/spring
/xfire
.xml
</
param-value
>
</
context-param
>
<!-- 启动时加载Spring
ContextServlet -->
<
listener
>
<
listener-class
>
org.spring
framework.web.context.ContextLoaderListener
</
listener-class
>
</
listener
>
<
listener
>
<
listener-class
>
org.spring
framework.web.util.Log4jConfigListener
</
listener-class
>
</
listener
>
<
listener
>
<
listener-class
>
org.spring
framework.web.util.IntrospectorCleanupListener
</
listener-class
>
</
listener
>
<!-- XFire
配置 -->
<
servlet
>
<
servlet-name
>
xfire
</
servlet-name
>
<
servlet-class
>
org.spring
framework.web.servlet.DispatcherServlet
</
servlet-class
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>
xfire
</
servlet-name
>
<
url-pattern
>
*.ws
</
url-pattern
>
</
servlet-mapping
>
<
welcome-file-list
>
<
welcome-file
>
index.html
</
welcome-file
>
</
welcome-file-list
>
</
web-app
>
这里注意 classpath:org/codehaus/xfire
/spring
/xfire
.xml 必须要写进去
xfire
-servlet.xml 新建这个文件,并且和web.xml放在同一个文件夹
注意: 名称和位置都不能变(也许可以改,我不知道)
xml 代码
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE beans PUBLIC "-//SPRING
//DTD BEAN//EN" "http://www.spring
framework.org/dtd/spring
-beans.dtd">
<
beans
>
<
bean
class
=
"org.spring
framework.web.servlet.handler.SimpleUrlHandlerMapping"
>
<
property
name
=
"urlMap"
>
<
map
>
<
entry
key
=
"/testService.ws"
>
<
ref
bean
=
"test"
/>
</
entry
>
</
map
>
</
property
>
</
bean
>
<
bean
id
=
"test"
parent
=
"webService"
class
=
"org.codehaus.xfire
.spring
.remoting.XFire
Exporter"
>
<
property
name
=
"serviceBean"
>
<
ref
bean
=
"testBean"
/>
</
property
>
<
property
name
=
"serviceClass"
>
<
value
>
test.IHello
</
value
>
</
property
>
</
bean
>
<!-- webService base -->
<
bean
id
=
"webService"
class
=
"org.codehaus.xfire
.spring
.remoting.XFire
Exporter"
abstract
=
"true"
>
<
property
name
=
"serviceFactory"
>
<
ref
bean
=
"xfire
.serviceFactory"
/>
</
property
>
<
property
name
=
"xfire
"
>
<
ref
bean
=
"xfire
"
/>
</
property
>
</
bean
>
</
beans
>
spring
的配置文件 applicationContext-webService.xml
xml 代码
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE beans PUBLIC "-//SPRING
//DTD BEAN//EN" "http://www.spring
framework.org/dtd/spring
-beans.dtd">
<
beans
>
<
bean
id
=
"testBean"
class
=
"test.HelloImpl"
>
</
bean
>
</
beans
>
查看wsdl http://localhost:8080/mootools/ testService.ws
?wsdl
运行 进入 index.html 页面,点击 即可执行调用,正常显示表示发布成功,调用失败会返回error(运行前请修改index.html文件的源码,将url修改成真正的url)
+ spring
发布webservice
2. 利用 javascript 调用发布的webservice
使用xfire
+spring
发布webservice其实很简单,遵循一下几个步骤即可
1. 想要发布成文webservice的类,必须实现接口
2. 3个配置文件(后面详细说)
下面针对以上步骤详细说明
关于1中的要求,给个例子就明白了
Itest.java 代码
package
test;
import
org.json.JSONException;
public
interface
IHello
{
public
String hello();
public
String helloTo(String name);
public
String getJsonData(String pageIndex,String pageSize);
}
HelloImpl.java 代码
package
test;
import
java.util.*;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpSession;
import
org.codehaus.xfire
.transport.http.XFire
ServletController;
import
org.json.JSONException;
import
org.json.JSONStringer;
public
class
HelloImpl
implements
IHello
{
public
String hello()
{
return
"hello"
;
}
public
String helloTo(String name)
{
return
" hello "
+ name +
"!"
;
}
private
void
example()
{
//使用session
HttpServletRequest request = XFire
ServletController.getRequest();
HttpSession session = request.getSession();
}
public
String getJsonData(String pageIndex,String pageSize)
{
String rtnValue = ""
;
rtnValue = ""
;
for
(
int
i=
0
;i<Integer.parseInt(pageSize);i++)
{
rtnValue = rtnValue + "{'lastname': 'last"
+ pageIndex +
"-"
+ i +
"', 'firstname': 'first"
+ pageIndex +
"-"
+ i +
"' },"
;
}
rtnValue = rtnValue + "{'lastname': 'last', 'firstname': 'last' }"
;
rtnValue = "{'context':["
+ rtnValue +
"],'pager':[{'totalRecord':'100','totalpage':'10','pageIndex':'"
+ pageIndex +
"','pageSize':'10'}]}"
;
return
rtnValue;
}
}
就这样写就可以了
关于三个配置文件
web.xml修改如下
xml 代码
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
web-app
xmlns
=
"http://java.sun.com/xml/ns/j2ee"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
version
=
"2.4"
xsi:schemaLocation
=
"http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
<!-- 配置文件路径 开始 -->
<
context-param
>
<
param-name
>
log4jConfigLocation
</
param-name
>
<
param-value
>
/WEB-INF/classes/log4j.properties
</
param-value
>
</
context-param
>
<
context-param
>
<
param-name
>
contextConfigLocation
</
param-name
>
<
param-value
>
/WEB-INF/classes/applicationContext*.xml
classpath:org/codehaus/xfire
/spring
/xfire
.xml
</
param-value
>
</
context-param
>
<!-- 启动时加载Spring
ContextServlet -->
<
listener
>
<
listener-class
>
org.spring
framework.web.context.ContextLoaderListener
</
listener-class
>
</
listener
>
<
listener
>
<
listener-class
>
org.spring
framework.web.util.Log4jConfigListener
</
listener-class
>
</
listener
>
<
listener
>
<
listener-class
>
org.spring
framework.web.util.IntrospectorCleanupListener
</
listener-class
>
</
listener
>
<!-- XFire
配置 -->
<
servlet
>
<
servlet-name
>
xfire
</
servlet-name
>
<
servlet-class
>
org.spring
framework.web.servlet.DispatcherServlet
</
servlet-class
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>
xfire
</
servlet-name
>
<
url-pattern
>
*.ws
</
url-pattern
>
</
servlet-mapping
>
<
welcome-file-list
>
<
welcome-file
>
index.html
</
welcome-file
>
</
welcome-file-list
>
</
web-app
>
这里注意 classpath:org/codehaus/xfire
/spring
/xfire
.xml 必须要写进去
xfire
-servlet.xml 新建这个文件,并且和web.xml放在同一个文件夹
注意: 名称和位置都不能变(也许可以改,我不知道)
xml 代码
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE beans PUBLIC "-//SPRING
//DTD BEAN//EN" "http://www.spring
framework.org/dtd/spring
-beans.dtd">
<
beans
>
<
bean
class
=
"org.spring
framework.web.servlet.handler.SimpleUrlHandlerMapping"
>
<
property
name
=
"urlMap"
>
<
map
>
<
entry
key
=
"/testService.ws"
>
<
ref
bean
=
"test"
/>
</
entry
>
</
map
>
</
property
>
</
bean
>
<
bean
id
=
"test"
parent
=
"webService"
class
=
"org.codehaus.xfire
.spring
.remoting.XFire
Exporter"
>
<
property
name
=
"serviceBean"
>
<
ref
bean
=
"testBean"
/>
</
property
>
<
property
name
=
"serviceClass"
>
<
value
>
test.IHello
</
value
>
</
property
>
</
bean
>
<!-- webService base -->
<
bean
id
=
"webService"
class
=
"org.codehaus.xfire
.spring
.remoting.XFire
Exporter"
abstract
=
"true"
>
<
property
name
=
"serviceFactory"
>
<
ref
bean
=
"xfire
.serviceFactory"
/>
</
property
>
<
property
name
=
"xfire
"
>
<
ref
bean
=
"xfire
"
/>
</
property
>
</
bean
>
</
beans
>
spring
的配置文件 applicationContext-webService.xml
xml 代码
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE beans PUBLIC "-//SPRING
//DTD BEAN//EN" "http://www.spring
framework.org/dtd/spring
-beans.dtd">
<
beans
>
<
bean
id
=
"testBean"
class
=
"test.HelloImpl"
>
</
bean
>
</
beans
>
查看wsdl http://localhost:8080/mootools/ testService.ws
?wsdl
运行 进入 index.html 页面,点击 即可执行调用,正常显示表示发布成功,调用失败会返回error(运行前请修改index.html文件的源码,将url修改成真正的url)
相关文章推荐
- MySQL性能优化的21个最佳实践
- MySQL性能优化的21个最佳实践
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- mysql:21个性能优化最佳实践之7[避免 SELECT *]
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- MySQL性能优化的21个最佳实践
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- MySQL性能优化的21个最佳实践
- mysql:21个性能优化最佳实践之14[把IP地址存成UNSIGNED INT]
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- MySQL性能优化的21个最佳实践
- 【MySQL性能优化的21个最佳实践】
- mysql:21个性能优化最佳实践之16[垂直分割]
- MySQL性能优化的21个最佳实践
- MySQL性能优化的21个最佳实践