[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-dev
Subject:    [jira] [Commented] (AXIS2-6046) AxisFault after upgrade to 1.8.0
From:       杨林_(Jira) <jira () apache ! org>
Date:       2022-11-01 2:43:00
Message-ID: JIRA.13485225.1665200975000.54629.1667270580115 () Atlassian ! JIRA
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/AXIS2-6046?page=com.atlassian.jira.plugin. \
system.issuetabpanels:comment-tabpanel&focusedCommentId=17626924#comment-17626924 ] 

杨林 commented on AXIS2-6046:
---------------------------

The stack trace:
obtainHTTPHeaderInformation:443, HTTPSender (org.apache.axis2.transport.http)
send:214, HTTPSender (org.apache.axis2.transport.http)
writeMessageWithCommons:385, AbstractHTTPTransportSender \
(org.apache.axis2.transport.http) invoke:213, AbstractHTTPTransportSender \
(org.apache.axis2.transport.http) send:431, AxisEngine (org.apache.axis2.engine)
executeImpl:266, OutOnlyAxisOperationClient (org.apache.axis2.description)
execute:150, OperationClient (org.apache.axis2.client)
helloReq:144, SoapServiceStub (wsdl.clientSoapToSoapServer)
invoke0:-1, NativeMethodAccessorImpl (sun.reflect)
invoke:62, NativeMethodAccessorImpl (sun.reflect)
invoke:43, DelegatingMethodAccessorImpl (sun.reflect)
invoke:498, Method (java.lang.reflect)

and  my axis2.xml 
<axisconfig name="AxisJava2.0">
    <!-- ================================================= -->
    <!-- Parameters -->
    <!-- ================================================= -->
    <parameter name="hotdeployment" locked="false">false</parameter>
    <parameter name="hotupdate">false</parameter>
    <parameter name="enableMTOM">false</parameter>
    <parameter name="enableSwA">false</parameter>


    <parameter name="EnableChildFirstClassLoading">false</parameter>

    <parameter name="exposeServiceMetadata">true</parameter>

    <parameter name="ConfigContextTimeoutInterval">30000</parameter>

    <parameter name="sendStacktraceDetailsWithFaults">false</parameter>

    <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>


    <parameter name="disableREST" locked="false">false</parameter>

    <!-- Following parameter will suppress generation of SOAP 1.2 bindings in \
auto-generated WSDL files -->  <parameter name="disableSOAP12" \
locked="true">false</parameter>

    <!--Service deployer , this will alow users to deploy AAR or exploded AAR as \
axis2 services-->  <deployer extension=".aar" directory="services" \
                class="org.apache.axis2.deployment.ServiceDeployer">
        <serviceBuilderExtension name ="wsdlbuilderExt" \
class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>  </deployer>

    <deployer extension=".class" directory="pojo" \
class="org.apache.axis2.deployment.POJODeployer"/>  <deployer extension=".jar" \
directory="servicejars"  class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>
    <deployer extension=".jar" directory="transports"
              class="org.apache.axis2.deployment.TransportDeployer"/>

    <parameter name="useGeneratedWSDLinJAXWS">false</parameter>

    <threadContextMigrators>
        <threadContextMigrator listId="JAXWS-ThreadContextMigrator-List"
                               \
class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapMigrator"/>  \
</threadContextMigrators>


    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
                         \
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>  <messageReceiver \
                mep="http://www.w3.org/2004/08/wsdl/in-out"
                         \
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>  <messageReceiver \
                mep="http://www.w3.org/2006/01/wsdl/in-only"
                         \
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>  <messageReceiver \
                mep="http://www.w3.org/2006/01/wsdl/in-out"
                         \
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>  <messageReceiver \
                mep="http://www.w3.org/ns/wsdl/in-only"
                         \
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>  <messageReceiver \
                mep="http://www.w3.org/ns/wsdl/in-out"
                         \
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>  </messageReceivers>

    <messageFormatters>
        <messageFormatter contentType="application/x-www-form-urlencoded"
                          \
class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>  <messageFormatter \
                contentType="multipart/form-data"
                          \
class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>  \
                <messageFormatter contentType="application/xml"
                          \
class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>  <messageFormatter \
                contentType="text/xml"
                          \
class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>  <messageFormatter \
                contentType="application/soap+xml"
                          \
class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>  </messageFormatters>

    <messageBuilders>
        <messageBuilder contentType="application/xml"
                        class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
        <messageBuilder contentType="application/x-www-form-urlencoded"
                        class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
        <messageBuilder contentType="multipart/form-data"
                        class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
    </messageBuilders>


    <transportReceiver name="http"
                       class="org.apache.axis2.transport.http.AxisServletListener"/>

    <transportReceiver name="https"
                       class="org.apache.axis2.transport.http.AxisServletListener">
    </transportReceiver>

    <transportSender name="local"
                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
    <transportSender name="http"
                     \
class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

        <parameter name="PROTOCOL">HTTP/1.1</parameter>
        <parameter name="Transfer-Encoding">chunked</parameter>

    </transportSender>

    <transportSender name="https"
                     \
class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">  \
<parameter name="PROTOCOL">HTTP/1.1</parameter>  <parameter \
name="Transfer-Encoding">chunked</parameter>  </transportSender>
    
    <clustering class="org.apache.axis2.clustering.tribes.TribesClusteringAgent" \
enable="false">

        <parameter name="AvoidInitiation">true</parameter>

        <parameter name="membershipScheme">multicast</parameter>

        <parameter name="domain">wso2.carbon.domain</parameter>

        <parameter name="synchronizeAll">true</parameter>

        <parameter name="maxRetries">10</parameter>

        <parameter name="mcastFrequency">500</parameter>

        <parameter name="memberDropTime">3000</parameter>

        <parameter name="mcastBindAddress">127.0.0.1</parameter>

        <!-- The host name or IP address of this member -->
        <parameter name="localMemberHost">127.0.0.1</parameter>

        <parameter name="preserveMessageOrder">true</parameter>
        
        <parameter name="atmostOnceMessageSemantics">true</parameter>

        <parameter name="properties">
            <property name="backendServerURL" \
                value="https://${hostName}:${httpsPort}/services/"/>
            <property name="mgtConsoleURL" \
value="https://${hostName}:${httpsPort}/"/>  </parameter>


        <groupManagement enable="false">
            <applicationDomain name="apache.axis2.application.domain"
                               description="Axis2 group"
                               \
agent="org.apache.axis2.clustering.management.DefaultGroupManagementAgent"/>  \
</groupManagement>

        <nodeManager \
class="org.apache.axis2.clustering.management.DefaultNodeManager"  enable="true"/>

        <stateManager class="org.apache.axis2.clustering.state.DefaultStateManager"
                      enable="true">
            <replication>
                <defaults>
                    <exclude name="local_*"/>
                    <exclude name="LOCAL_*"/>
                </defaults>
                <context class="org.apache.axis2.context.ConfigurationContext">
                    <exclude name="local_*"/>
                </context>
                <context class="org.apache.axis2.context.ServiceGroupContext">
                    <exclude name="local_*"/>
                </context>
                <context class="org.apache.axis2.context.ServiceContext">
                    <exclude name="local_*"/>
                </context>
            </replication>
        </stateManager>
    </clustering>

    <!-- ================================================= -->
    <!-- Phases  -->
    <!-- ================================================= -->
    <phaseOrder type="InFlow">
        <!--  System predefined phases       -->
        <phase name="Transport">
            <handler name="Redirect"
                     \
class="com.table.news.soap.axis2.handler.redirect.UrlRedirectHandler">  <order \
phase="Transport"/>  </handler>
            <handler name="RequestURIBasedDispatcher"
                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
                <order phase="Transport"/>
            </handler>
            <handler name="SOAPActionBasedDispatcher"
                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
                <order phase="Transport"/>
            </handler>
        </phase>
        <phase name="Addressing">
            <handler name="AddressingBasedDispatcher"
                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
                <order phase="Addressing"/>
            </handler>
        </phase>
        <phase name="Security"/>
        <phase name="PreDispatch"/>
        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
            <handler name="RequestURIBasedDispatcher"
                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
            <handler name="SOAPActionBasedDispatcher"
                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
            <handler name="RequestURIOperationDispatcher"
                     \
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>  <handler \
                name="SOAPMessageBodyBasedDispatcher"
                     \
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>  <handler \
                name="HTTPLocationBasedDispatcher"
                     \
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>  <handler \
                name="GenericProviderDispatcher"
                     \
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>  <handler \
                name="MustUnderstandValidationDispatcher"
                     \
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>  \
</phase>  <phase name="RMPhase"/>
        <!--  System predefined phases       -->
        <!--   After Postdispatch phase module author or service author can add any \
phase he want      -->  <phase name="OperationInPhase">
            <handler name="MustUnderstandChecker"
                     \
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">  <order \
phase="OperationInPhase"/>  </handler>
        </phase>
        <!--<phase name="soapmonitorPhase"/>-->
    </phaseOrder>
    <phaseOrder type="OutFlow">

        <phase name="OperationOutPhase"/>

        <phase name="RMPhase"/>
        <phase name="PolicyDetermination"/>
        <phase name="MessageOut"/>
        <phase name="Security"/>
    </phaseOrder>
    <phaseOrder type="InFaultFlow">
        <phase name="Addressing">
            <handler name="AddressingBasedDispatcher"
                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
                <order phase="Addressing"/>
            </handler>
        </phase>
        <phase name="Security"/>
        <phase name="PreDispatch"/>
        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
            <handler name="RequestURIBasedDispatcher"
                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
            <handler name="SOAPActionBasedDispatcher"
                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
            <handler name="RequestURIOperationDispatcher"
                     \
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>  <handler \
                name="SOAPMessageBodyBasedDispatcher"
                     \
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>  <handler \
                name="HTTPLocationBasedDispatcher"
                     \
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>  <handler \
                name="GenericProviderDispatcher"
                     \
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>  <handler \
                name="MustUnderstandValidationDispatcher"
                     \
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>  \
</phase>  <phase name="RMPhase"/>
        <!--      user can add his own phases to this area  -->
        <phase name="OperationInFaultPhase"/>
        <!--<phase name="soapmonitorPhase"/>-->
    </phaseOrder>
    <phaseOrder type="OutFaultFlow">
        <!--      user can add his own phases to this area  -->
        <!--<phase name="soapmonitorPhase"/>-->
        <phase name="OperationOutFaultPhase"/>
        <phase name="RMPhase"/>
        <phase name="PolicyDetermination"/>
        <phase name="MessageOut"/>
        <phase name="Security"/>
    </phaseOrder>
</axisconfig>

After debugging the source code I have found that 
Axis2 1.8.X
HTTPSender.obtainHTTPHeaderInformation
            ContentType contentType;
            try {
                contentType = new ContentType(contentTypeString);
            } catch (ParseException ex) {
                throw AxisFault.makeFault(ex);
            }

axis2 1.7.9 
org.apache.axis2.transport.http.impl.httpclient4.HTTPSenderImpl.HTTPSenderImpl
            Object contentType = header.getValue();
            Object charSetEnc = null;

            for (int i = 0; i < headers.length; i++) {
                NameValuePair charsetEnc = headers[i]
                        .getParameterByName(HTTPConstants.CHAR_SET_ENCODING);
                if (charsetEnc != null) {
                    charSetEnc = charsetEnc.getValue();
                }
            }




> AxisFault after upgrade to 1.8.0
> --------------------------------
> 
> Key: AXIS2-6046
> URL: https://issues.apache.org/jira/browse/AXIS2-6046
> Project: Axis2
> Issue Type: Bug
> Components: transports
> Affects Versions: 1.8.0
> Reporter: 杨林
> Priority: Blocker
> Attachments: image-2022-10-08-11-48-20-446.png, image-2022-10-08-11-49-30-028.png, \
> screenshot-1.png 
> 
> After update to 1.8.0 from 1.7.9 , I received an \
> AxisFault:java.text.ParseException: Token expected The cause of the AxisFault is \
>                 that content-type is empty.  
> !image-2022-10-08-11-49-30-028.png!
> I use axis2 to send a soap message as a notification to third-party . And i only \
> need a response ,don`t care about the response content 。 In addition, the \
>                 third-party simply returns a response with empty body . such as  
> !image-2022-10-08-11-48-20-446.png|width=543,height=147!
> 
> And OperationClient is OutOnlyAxisOperationClient
> Is content-type mandatory in this scenario?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic