Giter Club home page Giter Club logo

wso2-axis2's Introduction

======================================================
Apache Axis2 ${project.version} build (${buildTimestamp})

http://axis.apache.org/axis2/java/core/
------------------------------------------------------

___________________
Building
===================

We use Maven 2 (http://maven.apache.org) to build, and you'll find a
pom.xml in each module, as well as at the top level.  Use "mvn install"
(or "mvn clean install" to clean up first) to build.

IMPORTANT: the *first* time you build a given version of Axis2, you will not
be able to do a regular "mvn install" from the top level - this is because
we have a couple of custom Maven plugins that (due to some dependency-
resolution issues in Maven) must be built and installed in your local
repository before a build will succeed.  This means you need to do one
of the following:

  1) Use ant (http://ant.apache.org) to build the first time.  There is
     a build.xml at the top level which automatically builds the plugins
     first and then runs a regular "mvn install".
     
  2) Manually "mvn install" both of the plugins in the following places:
     
     modules/tool/axis2-mar-maven-plugin
     modules/tool/axis2-aar-maven-plugin


___________________
Documentation
===================
 
Documentation can be found in the 'docs' distribution of this release 
and in the main site.

___________________
Deploying
===================

To deploy a new Web service in Axis2 the following three steps must 
be performed:
  1) Create the Web service implementation class, supporting classes 
     and the services.xml file, 
  2) Archive the class files into a jar with the services.xml file in 
     the META-INF directory
  3) Drop the jar file to the $AXIS2_HOME/WEB-INF/services directory
     where $AXIS2_HOME represents the install directory of your Axis2 
     runtime. (In the case of a servelet container this would be the
     "axis2" directory inside "webapps".)

To verify the deployment please go to http://<yourip>:<port>/axis2/ and
follow the "Services" Link.

For more information please refer to the User's Guide.

___________________
Support
===================
 
Any problem with this release can be reported to Axis mailing list
or in the JIRA issue tracker. If you are sending an email to the mailing
list make sure to add the [Axis2] prefix to the subject.

Mailing list subscription:
    [email protected]

Jira:
    http://issues.apache.org/jira/browse/AXIS2


Thank you for using Axis2!

The Axis2 Team. 

wso2-axis2's People

Contributors

anupama-pathirage avatar arunans23 avatar callkalpa avatar chanikag avatar dulanjalidilmi avatar gdlmadushanka avatar jsdjayanga avatar kabanawso2 avatar kasunbg avatar kirishikesan avatar kishanthan avatar malakaganga avatar manoj-kristhombu avatar manuri avatar neelakishok avatar nipuni avatar niranjan-k avatar nirothipan avatar pasant9 avatar sajiniekavindya avatar sameerajayasoma avatar sdkottegoda avatar senthuran16 avatar shakila avatar shanchathusanda93 avatar supunmalinga avatar syodage avatar vathsan avatar wasuradananjith avatar wso2-jenkins-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wso2-axis2's Issues

Proxy server configuration for blocking mode should be consistent with that of non-blocking mode

Description:
The following proxy configuration parameters set in axis2.xml should work when added to axis2_blocking_client.xml in blocking scenarios. (<call blocking="true">)

<parameter locked="false" name="http.proxyHost">localhost</parameter>
<parameter locked="false" name="http.proxyPort">8080</parameter>
<parameter locked="false" name="http.nonProxyHosts">example.com</parameter>

Setting these parameters under org.apache.axis2.transport.http.CommonsHTTPTransportSender configuration doesn't work. They are being taken in as system parameters. Check [1] for more details.

As a solution, we can include code to read the above parameter values from the axis2_blocking_client.xml to method [2]. Also when validating nonProxyHosts, [3] should be modified to read from the configuration in addition to system properties. And [4] should be modified to reflect this logic of reading above parameters when checking if proxy is enabled.

[1] https://wso2.org/jira/browse/DOCUMENTATION-6914
[2] https://github.com/wso2/wso2-axis2/blob/master/modules/transport/http/src/org/apache/axis2/transport/http/util/HTTPProxyConfigurationUtil.java#L84
[3] https://github.com/wso2/wso2-axis2/blob/master/modules/transport/http/src/org/apache/axis2/transport/http/util/HTTPProxyConfigurationUtil.java#L277
[4] https://github.com/wso2/wso2-axis2/blob/master/modules/transport/http/src/org/apache/axis2/transport/http/util/HTTPProxyConfigurationUtil.java#L241

Invalid query param name

Description:

DS Fault Message: Invalid query param name: 'ret', must be an NCName. DS Code: UNKNOWN_ERROR Source Data Service:- Name: RDBMSSample Location: \samples\RDBMSSample.dbs Description: N/A Default Namespace: http://ws.wso2.org/dataservice/samples/rdbms_sample at org.wso2.carbon.dataservices.core.engine.CallQuery$WithParam.validateWithParam(CallQuery.java:370) at org.wso2.carbon.dataservices.core.engine.CallQuery$WithParam.(CallQuery.java:363) at org.wso2.carbon.dataservices.core.description.query.QueryFactory.createWithParam(QueryFactory.java:1401) at org.wso2.carbon.dataservices.core.description.query.QueryFactory.createCallQuery(QueryFactory.java:1355) at org.wso2.carbon.dataservices.core.description.query.QueryFactory.createCallQueries(QueryFactory.java:1339) at org.wso2.carbon.dataservices.core.description.operation.OperationFactory.createOperation(OperationFactory.java:57) at org.wso2.carbon.dataservices.core.DataServiceFactory.createDataService(DataServiceFactory.java:178) at org.wso2.carbon.dataservices.core.DBDeployer.createDBService(DBDeployer.java:797) at org.wso2.carbon.dataservices.core.DBDeployer.processService(DBDeployer.java:1152) at org.wso2.carbon.dataservices.core.DBDeployer.deploy(DBDeployer.java:201) at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807) at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377) at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254) at org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:371) at org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:59) at org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:67) at org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.runAxisDeployment(CarbonDeploymentSchedulerTask.java:93) at org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.runAndReset(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Suggested Labels:

Suggested Assignees:

wso2-jenkins-bot.
Affected Product Version:
data services 3.5.1
OS, DB, other environment details and versions:
windows 8.1 64bit
Steps to reproduce:

Related Issues:
please fix it.
thank you a lot of.

NPE in validateArgumentTypes method

[2017-05-24 16:34:01,245] [EI-Core] ERROR - ServerWorker Error processing POST reguest for : /services/mydataservice/testpath. Error detail: null.
java.lang.NullPointerException
at org.apache.axis2.json.gson.GsonXMLStreamReader.validateArgumentTypes(GsonXMLStreamReader.java:783)
at org.apache.axis2.json.gson.GsonXMLStreamReader.nextValue(GsonXMLStreamReader.java:734)
at org.apache.axis2.json.gson.GsonXMLStreamReader.readValue(GsonXMLStreamReader.java:626)
at org.apache.axis2.json.gson.GsonXMLStreamReader.stateTransition(GsonXMLStreamReader.java:532)
at org.apache.axis2.json.gson.GsonXMLStreamReader.next(GsonXMLStreamReader.java:178)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)
at org.apache.axiom.om.impl.llom.OMSerializableImpl.build(OMSerializableImpl.java:78)
at org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:722)
at org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:700)
at org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:105)
at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:296)
at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:212)
at org.apache.axiom.soap.impl.llom.SOAPBodyImpl.addChild(SOAPBodyImpl.java:231)
at org.apache.axis2.json.gson.JSONMessageHandler.invoke(JSONMessageHandler.java:84)
at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167)
at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:326)
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:372)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

java.util.ServiceLoader does not work with JarFileClassLoader

Description:
When you want to use ServiceLoader with JarFileClassLoader it fails not founding any implementation of selected service class.

Current flow looks like this:

  1. ServiceLoader class invokes getResources on base ClassLoader class.
  2. This method invokes {@link org.apache.axis2.classloader.MultiParentClassLoader#findResources(String)} method.
  3. Subsequently super.findResources(String) method is executed which is {@link java.net.URLClassLoader#findResources(String)}.

Method
{@link org.apache.axis2.classloader.JarFileClassLoader#internalfindResources} is never executed and this is the place where {@link org.apache.axis2.classloader.UrlResourceFinder} resourceFinder object is used to fetch resources. On the contrary {@link org.apache.axis2.classloader.JarFileClassLoader#getResource(String)} method is used directly when try to fetch single resource object. This gives inconsistency by returning valid object with getResource(String) method but empty Enumeration by getResources(String) method.
Suggested Labels:
JarFileClassLoader, ServiceLoader, findResources, internalfindResources

Suggested Assignees:

Affected Product Version:
master branch

OS, DB, other environment details and versions:
does not matter

Steps to reproduce:
Use java.util.ClassLoader in combination with JarFileClassLoader.

Related Issues:

Suggested solution
Implement findResources method instead of internalfindResources.

[Doc]Custom annotation to skip null values to preserve Backward Compatibility.

Description:
Suppose a new attribute is added to an Admin Service (WSDL) and the corresponding stub is changed. Then the existing clients that have not regenerated the stub will get an error "Unexpected Subelement" when trying to access a service that will return the new attribute.

To overcome this compatibility issue I have introduced a new field type annotation "IgnoreNullElement" in Axis2 and a configuration property "forceIncludeNullElements" in axis2.xml file(IS-Home/repository/conf/axis2/axis2.xml).

PR - 7c7ce54

There are two main use cases of this annotation.

  1. When property value = null, @IgnoreNullElement is set to the property and forceIncludeNullElements configuration is either not set or false
  • Then the property will be skipped when creating the response
  1. When property value = null, @IgnoreNullElement is set to the property and forceIncludeNullElements configuration is true
  • Then the property will not be skipped when creating the response

How to use the annotation.

Add the annotation @IgnoreNullElement before the property declaration.

Eg:

         import org.apache.axis2.databinding.annotation.IgnoreNullElement;
         @IgnoreNullElement
         private String propertyName;

Then add the below parameter and configure it to true to not skip properties that are null

      `<parameter name="forceIncludeNullElements">true</parameter>`

Or configure the parameter to false to skip the properties that are null. If the parameter is not set in the axis2.xml it will be considered as the parameter is set to false.

       `<parameter name="forceIncludeNullElements">false</parameter>`

This annotation and the property in the axis2.xml should be documented for developers use.
Affected Product Version:
Asix2 versions: master, 1.6.1-wso2v28, 1.6.1-wso2v20

Generated Exceptions differ each generation

Description:
The Java files which are generated by the AntCodegenTask for Exceptions differ each generation in the serialVersionUID.
This is especially bothering if the gradle cache should be used, wich requires a fixed input. Also, the objects may not be deserialized again if the SerialVersionUID changes each time.

Suggested Labels:

Suggested Assignees:

Affected Product Version:
All

OS, DB, other environment details and versions:

Steps to reproduce:
Create a WSDL with a wsdl:fault element, e.g:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ExampleModule" targetNamespace="http://www.example.org/">
    <wsdl:types>
        <xsd:schema targetNamespace="http://www.example.org/">
            <xsd:element name="getSolutionById">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="in" type="xsd:string"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getSolutionByIdResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="out" type="xsd:string"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getSolutionByIdFault">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="getSolutionByIdFault"
                                     type="xsd:string">
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>

        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="getSolutionByIdRequest">
        <wsdl:part element="tns:getSolutionById" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getSolutionByIdResponse">
        <wsdl:part element="tns:getSolutionByIdResponse" name="parameters"/>
    </wsdl:message>

    <wsdl:message name="getSolutionByIdFault">
        <wsdl:part name="parameters" element="tns:getSolutionByIdFault"></wsdl:part>
    </wsdl:message>
    <wsdl:portType name="ExampleModule">
        <wsdl:operation name="getSolutionById">
            <wsdl:input message="tns:getSolutionByIdRequest"/>
            <wsdl:output message="tns:getSolutionByIdResponse"/>

            <wsdl:fault name="fault" message="tns:getSolutionByIdFault"></wsdl:fault>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="ExampleModuleSOAP" type="tns:ExampleModule">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="getSolutionById">
            <soap:operation soapAction="http://www.example.org/ExampleModule/getSolutionById"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="fault">
                <soap:fault use="literal" name="fault" />
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ExampleModule">
        <wsdl:port binding="tns:ExampleModuleSOAP" name="ExampleModuleSOAP">
            <soap:address location="http://www.example.org/"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

Generate it again, the serialVersionUID changes

More info
I've checked and found the corresponding issue in the file AxisServiceBasedMultiLanguageEmitter.java in line 1055, where the System.currentTimeMillis() is used for the serialVersionUID.
A hash based on the className and the parameters would probably be better.

Related Issues:

Threads getting blocked when high concurrency for admin services.

When calling UserAdmin service with high concurrency (approx. 450 TPS) threads get blocked with following trace.

"http-nio-9443-exec-173" daemon prio=10 tid=0x00007fd9988d7800 nid=0x1cf8 waiting for monitor entry [0x00007fd8bd02e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:278)
	at com.sun.beans.finder.ClassFinder.findClass(ClassFinder.java:67)
	at com.sun.beans.finder.ClassFinder.findClass(ClassFinder.java:110)
	at com.sun.beans.finder.InstanceFinder.instantiate(InstanceFinder.java:93)
	at com.sun.beans.finder.InstanceFinder.find(InstanceFinder.java:66)
	at java.beans.Introspector.findExplicitBeanInfo(Introspector.java:438)
	at java.beans.Introspector.<init>(Introspector.java:388)
	at java.beans.Introspector.getBeanInfo(Introspector.java:252)
	at java.beans.Introspector.getBeanInfo(Introspector.java:214)
	at org.apache.axis2.databinding.utils.BeanUtil.getBeanInfo(BeanUtil.java:103)
	at org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:158)
	at org.apache.axis2.databinding.utils.BeanUtil.getPullParser(BeanUtil.java:72)
	at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.processProperties(ADBXMLStreamReaderImpl.java:994)
	at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.next(ADBXMLStreamReaderImpl.java:831)
	at org.apache.axis2.util.StreamWrapper.next(StreamWrapper.java:71)
	at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)
	at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)
	at org.apache.axiom.om.impl.llom.OMSerializableImpl.build(OMSerializableImpl.java:78)
	at org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:722)
	at org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:700)
	at org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:105)
	at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:296)
	at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:212)
	at org.apache.axiom.soap.impl.llom.SOAPBodyImpl.addChild(SOAPBodyImpl.java:231)
	at org.apache.axis2.rpc.receivers.RPCUtil.processResponseAsDocLitWrapped(RPCUtil.java:400)
	at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:153)
	at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
	at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
	at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173)
	at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
	at org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:88)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSRFPreventionFilter.java:88)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRLFPreventionFilter.java:59)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
	at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
	at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
	at org.wso2.carbon.event.receiver.core.internal.tenantmgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:48)
	at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
	at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
	at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1749)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1708)
	- locked <0x00000000d4d3fc08> (a org.apache.tomcat.util.net.SecureNioChannel)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)

axis2-client uses an older HTTP Core version (4.3.0.wso2v1)

WSO2 has forked HTTP Core 4.4.11 and maintains and Orbit for that.
https://github.com/wso2/orbit/blob/master/httpcore/4.4.11-wso2v1/pom.xml

We are using the HTTP Core as a dependency in the wso2 axis2-client.
https://github.com/wso2/wso2-axis2/blob/master/orbit/axis2-client/pom.xml#L251

But we are using an older version of HTTP Core not the 4.4.11 as in the above pom.
<dependency> <groupId>org.apache.httpcomponents.wso2</groupId> <artifactId>httpcore</artifactId> <version>4.3.0.wso2v1</version> </dependency>
As we already have forked HTTP Core 4.4.11 and maintains a pom, can we please release a new axis2-client using the HTTP Core 4.4.11.

Content-Type, Content-Length header get changed by gateway for the multipart/form-data

Description:
When using multipart/form-data file upload parameter, the backend is expected Content-Type and Content-Length headers available in the request for the uploaded file, but it gets changed from the gateway when the request reaches to the backend.

Suggested Labels:
APIM 2.5.0, APIM 2.6.0

Affected Product Version:
APIM 2.5.0, APIM 2.6.0

Steps to reproduce:

  • Enable the wire logs at the gateway
  • Send the requests with multipart/form-data.
  • Check the carbon logs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.