[ 
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-unsubscr...@axis.apache.org
For additional commands, e-mail: java-dev-h...@axis.apache.org

Reply via email to