当前位置: 首页 > 知识库问答 >
问题:

在tomcat中使用axis2的Web服务

嵇俊德
2023-03-14

我是开发web服务的新手。我正在使用axis2创建web服务并在Tomcat中部署。我通过从博客中获取一些知识并在Tomcat7中部署它来做到这一点problem.when我在SOAP UI中检查该Web服务。我得到了错误。

我所做的是。我创建了一个具有我的方法的java类。该方法用于插入记录 solr.so 我正在使用http客户端,基本名称值对等,我为该类制作aar文件并将其部署到tomcat中而不会出现任何问题.但是当我通过soapUI调用该方法时,我在控制台中出现错误。请帮助我。

我的错误控制台是:

Exception In Source Create Service   java.lang.ClassCastException: org.apache.http.message.BasicNameValuePair cannot be cast to org.apache.http.NameValuePair
[ERROR] loader constraint violation: when resolving method "org.apache.http.client.methods.HttpPost.setParams(Lorg/apache/http/params/HttpParams;)V" the class loader (instance of org/apache/axis2/deployment/DeploymentClassLoader) of the current class, com/mf/dmsolr/SolrUtil, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, org/apache/http/client/methods/HttpPost, have different Class objects for the type client.methods.HttpPost.setParams(Lorg/apache/http/params/HttpParams;)V used in the signature
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
    at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
    at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
    at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.http.client.methods.HttpPost.setParams(Lorg/apache/http/params/HttpParams;)V" the class loader (instance of org/apache/axis2/deployment/DeploymentClassLoader) of the current class, com/mf/dmsolr/SolrUtil, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, org/apache/http/client/methods/HttpPost, have different Class objects for the type client.methods.HttpPost.setParams(Lorg/apache/http/params/HttpParams;)V used in the signature
    at com.mf.dmsolr.SolrUtil.insertRecords(SolrUtil.java:34)
    at com.mf.dmsolr.Dmwebservices.insertXMLData(Dmwebservices.java:172)
    at com.mf.dmsolr.Dmwebservices.createSource(Dmwebservices.java:102)
    ... 29 more

下面给出了我的 java 代码导入。

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.zip.GZIPOutputStream;
import java.util.zip.InflaterInputStream;

import javax.xml.XMLConstants;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

import com.mf.dmsolr.server.DataSet;
import com.mf.dmsolr.server.Datastreamtype;
import com.mf.dmsolr.server.Recordtype;

我的lib文件夹包含

httpclient-4.2.1.jar
httpclient-4.2.3.jar
httpcore-4.2.1.jar
httpcore-4.2.2.jar
httpmime-4.2.3.jar

当我使用我的aar文件部署axis应用程序时,出现了一些问题。我通过复制我的java应用程序中的jar并将其放在tomcat lib文件夹中,修复了这个问题。然后错误消失了。部署成功。如果是问题手段,如何整改这个问题。请帮助我。谢谢

共有1个答案

荣声
2023-03-14

在类路径中,不应在不同版本中具有相同的 jar 文件。请选择您需要的 httpcore 和 httpclient 版本。

你把axis jar放在哪里,你真的需要另一个http-clent.jar吗?

axis2中已经有一个:

。/axis 2-1 . 6 . 2/lib/commons-http client-3.1 . jar

org/apache/commons/httpclient/params/HttpParams.class

我猜有冲突……

 类似资料:
  • 首先,英语不是我的母语,所以如果有一些错误,你可以编辑我的帖子。 问:我已经创建了一个简单的代码,我想要的是在我的服务器上运行它。所以我会知道web服务器会是什么样子。 我发现的一个解决方案是右键点击项目,然后说“运行服务器” 当我这样做时,我得到的不是404-未找到错误,而是这个屏幕: https://i.gyazo.com/bf2230e2a3dd395701a430dc971cdea7.pn

  • 我已经将一个Web服务作为aar文件部署到Axis2,我使用以下教程:https://www.rukspot.com/blog/axis_2_sample_web_service_with_maven_and_eclipse 我可以进入'services'页面(http://localhost:7070/axis2/services/listservices),它正确地显示了我的web服务。我可以

  • 我们有一个带有gradle build配置的java web应用程序,它包含以下两个模块: > project web。war——包含所有statc文件、js、jsp等。此外,它还包含所有项目、带有rest控制器层的spring配置。 project-main.jar包含了所有的业务 目前,我们正在ApacheTomcat中部署这两个模块。我们的项目正在经历一些架构上的变化 我是Apache ht

  • 我必须使用axis2和Maven在eclipse中创建一个web服务,但我有很多问题。这是波姆。xml: Eclipse给了我这个错误:Description资源路径位置类型插件执行未包含在lifecycle configuration:org中。阿帕奇。axis2:axis2-java2wsdl-maven-plugin:1.5.4:java2wsdl(执行:默认,阶段:流程类)pom。xml/

  • 我有一个运行在j2ee服务器(jboss 4.0.4)上的axis2 web服务客户端,该服务器一直在使用tomcat上托管的web服务。最近tomcat管理员打开了TLS,现在我的axis2客户端无法工作。如何为axis2客户端打开TLS? 谢谢你的帮助!

  • 问题内容: 我正在尝试创建一个Web服务,我的交易工具是: ** Axis2,Eclipse,Tomcat,Ant ** 我需要从Code创建一个Web服务,即编写一个基本的Java类,它将具有在WSDL中声明的方法。然后使用java2WSDL.sh创建我的WSDL。 因此,这种方法是否正确: 用实际的业务逻辑编写我的Java类 现在,当我将此Hello.java传递给java2WSDL.sh时,