RPCServiceClient 调用web services怎样mybatis传入多个参数webparan参数

1890人阅读
在具体介绍这两种框架下的webservice之前,先跟大家交流一下SOA认识,也就是面向服务的体系结构。SOA所要解决的主要问题是在现有基础环境的前提下,通过对现有应用程序和基础结构进行重新的组合以应对不断变化的业务需求。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,而其对外提供服务的主要方式之一就是我们今天所要介绍的webservice。目前来讲比较有名的webservice框架大致有四种JWS,Axis,XFire以及CXF。今天我们主要介绍前两种。
<span style="color:#.&&&JWS-WebService.JWS是java语言实现的一种webservice,用来开发和发布服务,它是一个轻量级的WS框架,实现起来也非常的简单,下面通过一个小demo来看一下JWS是如何实现的:
(1) &定义接口,并将接口发布成webservice:
package org.zttc.
import javax.jws.WebP
import javax.jws.WebR
import javax.jws.WebS
import javax.jws.soap.SOAPB
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface IMyService {
@WebResult(name=&addResult&)
public int add(@WebParam(name=&a&)int a,@WebParam(name=&b&)int b);
@WebResult(name=&loginUser&)
public User login(@WebParam(name=&username&)String username,@WebParam(name=&password&)String password);
(2).定义接口实现:
package org.zttc.
import javax.jws.WebP
import javax.jws.WebR
import javax.jws.WebS
@WebService(endpointInterface=&org.zttc.service.IMyService&)
public class MyServiceImpl implements IMyService {
public int add(int a, int b) {
System.out.println(a + &+& + b + &=& + (a + b));
return a+b;
public User login(@WebParam(name = &username&) String username,
@WebParam(name = &password&) String password) {
System.out.println(username + & is logging&);
User user = new User();
user.setId(&1&);
user.setUsername(username);
user.setPassword(password);
(3).发布服务:
package org.zttc.
import javax.xml.ws.E
public class MyServer {
public static void main(String[] args){
String address = &http://localhost:8888/ns&;
Endpoint.publish(address, new MyServiceImpl());
(4).编写测试类代码:
package org.zttc.
import java.net.MalformedURLE
import java.net.URL;
import javax.xml.namespace.QN
import javax.xml.ws.S
public class TestClient {
public static void main(String[] args){
//创建访问wsdl服务地址的url
URL url = new URL(&http://localhost:8888/ns?wsdl&);
//通过QName指明服务的和具体信息
QName sname= new QName(&http://service.zttc.org/&,&MyServiceImplService&);
//创建服务
Service service = Service.create(url,sname);
//实现接口
IMyService ms =service.getPort(IMyService.class);
System.out.println(ms.add(12, 33));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
通过上面的代码我们可以看出在调用webservice的同时我们仍然需要知道对应的java类(接口),但调用webservice的情况往往两发生在个不同系统之间的,事先无法获取对应的接口,这时我们因该怎样解决这个问题呢?很简单,我们可以通过jdk,使用导出命令,将wsdl中的接口描述来生成这个接口以及实现类,然后将生成的接口和实现类应用在我们自己的java程序中就可以了,具体的生成命令是:
Wsimport -d E:/我的酷盘/我的工程/java项目/webservice/01/ -keep -verbose
2 . & 基于Axis2框架的webservice。相对于JWS来说Axis2是一个重量级的webservice框架,准确说它是一个Web Services / SOAP / WSDL的引擎,它不但能制作和发布WebService,而且可以生成Java和其他语言版WebService客户端和服务端代码。也正是由于Axis2做了非常优秀的封装,使得我们在使用Axis2-WS的时候非常的简单,下面通过一个小例子跟大家介绍一下Axis2的应用。
(1).&首先我们要做的是下载axis.war,并将这个war包发布到我们的tomcat的webapps下。启动tomcat,访问:,如果界面显示如下则说明发布成功:
(2).编写我们的java类。注意我们所建立的java类不要放在任何包中,直接放在src下即可,代码如下:
public class MyService {
public String sayHello(String name,boolean isMan) {
if(isMan) {
return &Hello,Mr &+name+&! Welcome to Webservice&;
return &Hello,Miss &+name+&! Welcome to Webservice&;
(3).将我们建好的class类放到%tomcat%\webapps\axis2\WEB-INF\pojo文件夹下(如果没有该文件夹请新建一个并以pojo命名)。做完这一步之后启动tomcat,访问,如果出现如下界面则说明发布成功:
(4).发布好之后我们就可以编写客户端尝试调用webservice,客户端代码如下:
package com.unimas.datacollection.webservices.
import org.apache.axis2.addressing.EndpointR
import org.apache.axis2.client.O
import org.apache.axis2.rpc.client.RPCServiceC
import javax.xml.namespace.QN
public class Client {
public static void main(String[] args) throws Exception {
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// 指定调用WebService的URL
EndpointReference er = new EndpointReference(
&http://localhost:8080/axis2/services/MyService&);
options.setTo(er);
// 指定sayHello方法的参数值
Object[] opAddArgs = new Object[] { &张三&, false };
// 指定sayHello方法返回值的数据类型的class对象
Class[] classs = new Class[] { String.class };
// 指定要调用的sayHello方法及wsdl文件的命名空间,第一个参数表示WSDL文件的命名空间
// 通过访问http://localhost:8080/axis2/services/MyService?wsdl 就可以看见
// 元素的targetNamespace属性值
QName qname = new QName(&http://ws.apache.org/axis2&, &sayHello&);
// 调用sayHello方法并输出该方法的返回值
// 这里有三个参数的意思:1,是QName对象,表示要调用的方法名;2,webservice的参数值,参数类型是Object[];3,返回值class对象,参数类型是Class[],
System.out.println(serviceClient.invokeBlocking(qname, opAddArgs,
classs)[0]);
至此Axis2-WS发布完成,执行客户端代码即可在控制台输出调用结果。以上是对JWS和Axis2具体应用的简单介绍,对比这两种应用可以发现使用JWS比较灵活,我们可以随意的增加服务而不需要一次次的重新部署,但是我们所要做的工作量是比较大的。而使用Axis2对于开发webservice来讲相当的简单,我们唯一需要做的就是开发一个普通的java类,然后放到tomcat的对应文件夹下即可,可以说小有小的好处,大有大的优势。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:173871次
积分:4632
积分:4632
排名:第2300名
原创:115篇
评论:1220条
(2)(3)(3)(5)(1)(4)(6)(1)(9)(1)(3)(3)(6)(9)(4)(4)(5)(6)(3)(6)(2)(3)(2)(3)(3)(1)(4)(5)(3)(2)(8)(1)2482人阅读
异步,说到异步需要首先将以下同步。同步就是代码按照顺序执行,当前面的代码的请求没有正常返回结果的情况下,后面的代码是不能运行。而异步正好和这点不同,异步是代码运行后,不管当前的请求是否返回结果,后面的代码都会继续运行。
1. & 编写服务端代码:
&& & &public class AsynchronousService {
public String execute() {
System.out.println(&正在执行此代码……&);
// 延迟5秒后,返回结果
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
return &完成&;
2. & 编写services.xml代码,打包并发布至对应文件夹下
&&service name=&AsyncService&&
&description&
AsyncService
&/description&
&parameter name=&ServiceClass&&
server.asynchronous.AsynchronousService
&/parameter&
&messageReceivers&
&messageReceiver mep=&http://www.w3.org/2004/08/wsdl/in-out&
class=&org.apache.axis2.rpc.receivers.RPCMessageReceiver& /&
&messageReceiver mep=&http://www.w3.org/2004/08/wsdl/in-only&
class=&org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver& /&
&/messageReceivers&
&/service&
3. & 客户端代码:
import java.io.IOE
import javax.xml.namespace.QN
import org.apache.axis2.addressing.EndpointR
import org.apache.axis2.client.O
import org.apache.axis2.client.async.AxisC
import org.apache.axis2.context.MessageC
import org.apache.axis2.rpc.client.RPCServiceC
public class AsynTest {
public static void main(String[] args) throws IOException {
String target = &http://localhost:8080/axis2/services/AsyncService&;
RPCServiceClient client = new RPCServiceClient();
Options options = client.getOptions();
options.setManageSession(true);
EndpointReference epr = new EndpointReference(target);
options.setTo(epr);
QName qname = new QName(&http://asynchronous.server&, &execute&);
//指定调用的方法和传递参数数据,及设置返回值的类型
client.invokeNonBlocking(qname, new Object[] {}, new AxisCallback() {
public void onMessage(MessageContext ctx) {
System.out.println(ctx.getEnvelope());
System.out.println(&Message:& + ctx.getEnvelope().getFirstElement().getFirstElement().getFirstElement().getText());
public void onFault(MessageContext ctx) {
public void onError(Exception ex) {
public void onComplete() {
//断点此处,查看异步结果
System.out.println(&异步WebService&);
//阻止程序退出
System.in.read();
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:291492次
积分:4626
积分:4626
排名:第2303名
原创:178篇
转载:28篇
评论:55条
(8)(1)(2)(1)(2)(6)(4)(1)(2)(5)(1)(1)(2)(5)(5)(2)(1)(1)(1)(10)(7)(8)(1)(2)(1)(5)(3)(6)(10)(13)(9)(25)(24)(10)(21)这个问题怎么解决?异常信息如下:
org.apache.axis2.AxisFault: Unmarshalling Error: unexpected element (uri:"/", local:"arg1"). Expected elements are &{}arg3&,&{}arg2&,&{}arg1&,&{}arg0&
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:548)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
at com.mon.AxisWebServiceFactory.excute(AxisWebServiceFactory.java:77)
at com.test.digitalBill.service.impl.WebServiceForResultServiceImpl.getEContPaperData(WebServiceForResultServiceImpl.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:301)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy76.getEContPaperData(Unknown Source)
at com.test.digitalBill.web.action.SpecialEPolicySearchAction.searchCore(SpecialEPolicySearchAction.java:206)
at com.test.digitalBill.web.action.SpecialEPolicySearchAction.search(SpecialEPolicySearchAction.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
问题补充:tomcat 下正常调用 weblogic下无法调用这个方法,一个参数weblogic没问题...
感觉应该是jar包的冲突
已解决问题
未解决问题

我要回帖

更多关于 java main 传入参数 的文章

 

随机推荐