I see. I am looking at the docs now and am making some updates. Are you running JAX-WS services? How did you fix it? Did you use a ServletContextInitializer like the code I pasted?
I ask because I don't use JAX-WS myself, so I haven't run into the problem. Regards, Robert On Tue, Mar 9, 2021 at 11:44 AM Kevin Lee <[email protected]> wrote: > Hey Robert, > > When I start work on upgrading a dependency between major versions that > are expected to have breaking changes, I look towards the release > documentation for the first major version release, which for 1.7 would be > here <https://axis.apache.org/axis2/java/core/release-notes/1.7.0.html>. > There is a section at the bottom that has several bullet points dedicated > towards notable breaking changes, which I think is great. I propose that > adding the contents of AXIS2-5340 > <https://issues.apache.org/jira/browse/AXIS2-5340> as a bullet point > would be important as that seems to definitely be a notable breaking change. > > Best, > Kevin > > On Tue, Mar 9, 2021 at 3:29 PM robertlazarski <[email protected]> > wrote: > >> I'm not really sure how the axis2.xml docs could be in regards to this >> issue - do you think you could contribute it? Just paste what you have in >> mind here if that is easier. >> >> On Tue, Mar 9, 2021 at 11:15 AM Kevin Lee < >> [email protected]> wrote: >> >>> Hey Robert, >>> >>> I managed to upgrade successfully after finding that axis2.xml change, >>> as the error messages for what to fix were fairly straightforward >>> afterwards (before, the web service deployment appeared to be failing >>> silently with a generic EPR reference cannot be found error). I think that >>> axis2.xml deployer inclusion just needs to be more prominent in the >>> documentation. >>> >>> Best, >>> Kevin >>> >>> On Tue, Mar 9, 2021 at 2:59 PM robertlazarski <[email protected]> >>> wrote: >>> >>>> I was wondering if there are any spring boot users. I plan on writing >>>> some docs as it is harder than it should be. >>>> >>>> I was able to successfully implement it though. Where are you stuck >>>> exactly? >>>> >>>> Here's the main init code: >>>> >>>> package com.alphatheory.configuration; >>>> >>>> import com.mycompany.ATInit; >>>> import org.apache.logging.log4j.LogManager; >>>> import org.apache.logging.log4j.Logger; >>>> import org.apache.axis2.transport.http.AxisServlet; >>>> import org.springframework.boot.web.servlet.ServletContextInitializer; >>>> import org.springframework.context.annotation.Configuration; >>>> import >>>> org.springframework.web.context.support.AnnotationConfigWebApplicationContext; >>>> >>>> import org.springframework.core.annotation.Order; >>>> >>>> import org.springframework.beans.factory.annotation.Autowired; >>>> import org.springframework.beans.factory.annotation.Value; >>>> import org.springframework.context.annotation.Bean; >>>> import org.springframework.context.annotation.PropertySource; >>>> import >>>> org.springframework.context.support.PropertySourcesPlaceholderConfigurer; >>>> >>>> import javax.servlet.ServletContext; >>>> import javax.servlet.ServletRegistration; >>>> >>>> import java.util.Set; >>>> >>>> @Configuration >>>> @Order(4) >>>> @PropertySource("classpath:application.properties") >>>> public class ATWebAppInitializer implements ServletContextInitializer { >>>> >>>> private static final Logger logger = >>>> LogManager.getLogger(ATWebAppInitializer.class); >>>> private static final String SERVICES_MAPPING = "/services/*"; >>>> >>>> @Value("${appInstance}") >>>> private String appInstance; >>>> >>>> @Value("${appInstanceIP}") >>>> private String appInstanceIP; >>>> >>>> @Value("${prodKillSwitchEnabled}") >>>> private String prodKillSwitchEnabled; >>>> >>>> @Override >>>> public void onStartup(ServletContext container) { >>>> String logPrefix = "ATWebAppInitializer , appInstance: " + >>>> appInstance + " , "; >>>> logger.warn(logPrefix + "inside onStartup() ..."); >>>> // Create the 'root' Spring application context >>>> AnnotationConfigWebApplicationContext ctx = new >>>> AnnotationConfigWebApplicationContext(); >>>> >>>> addAxis2Servlet(container, ctx); >>>> addATInitServlet(container, ctx); >>>> logger.warn(logPrefix + "onStartup() completed ..."); >>>> } >>>> >>>> private void addAxis2Servlet(ServletContext container, >>>> AnnotationConfigWebApplicationContext ctx) { >>>> >>>> ServletRegistration.Dynamic dispatcher = container.addServlet( >>>> "AxisServlet", new AxisServlet()); >>>> dispatcher.setLoadOnStartup(1); >>>> Set<String> mappingConflicts = >>>> dispatcher.addMapping(SERVICES_MAPPING); >>>> if (!mappingConflicts.isEmpty()) { >>>> for (String s : mappingConflicts) { >>>> logger.error("Mapping conflict: " + s); >>>> } >>>> // throw new IllegalStateException("'AxisServlet' could not >>>> be mapped to '" + SERVICES_MAPPING + "'"); >>>> } >>>> } >>>> >>>> private void addATInitServlet(ServletContext container, >>>> AnnotationConfigWebApplicationContext ctx) { >>>> >>>> ServletRegistration.Dynamic dispatcher = container.addServlet( >>>> "ATInit", new ATInit()); >>>> dispatcher.setLoadOnStartup(1); >>>> dispatcher.setInitParameter("appInstance", appInstance); >>>> >>>> // do not add mapping >>>> } >>>> >>>> } >>>> >>>> On Tue, Mar 9, 2021 at 10:13 AM Kevin Lee < >>>> [email protected]> wrote: >>>> >>>>> Hi Axis2 team, >>>>> >>>>> I recently had to upgrade from Axis 1.6.3 to Axis 1.7.8 on the Java >>>>> Spring Boot codebase I work on, and struggled greatly with making the >>>>> upgrade work until I resolved the breaking change from AXIS2-5340 >>>>> <https://issues.apache.org/jira/browse/AXIS2-5340> that involved >>>>> changing our axis2.xml config to properly deploy our web services. >>>>> >>>>> This breaking change is not listed clearly in the 1.7.0 major release >>>>> notes >>>>> <https://axis.apache.org/axis2/java/core/release-notes/1.7.0.html> - >>>>> it is not included alongside the other breaking changes listed up front >>>>> such as the MEP URI form change, and is tucked away in the complete >>>>> list of JIRA issues that were addressed in the release >>>>> <https://axis.apache.org/axis2/java/core/release-notes/1.7.0.html>. >>>>> The only reason why I found out about this change was by downloading the >>>>> binaries for 1.6.3 and 1.7.8 and stumbling upon the differences in default >>>>> axis2.xml configs. >>>>> >>>>> As mentioned in the issue, this seems like a rather important breaking >>>>> change that will apply to the majority of Axis2 setups and seems necessary >>>>> for backward compatibility. I believe it will benefit future developers >>>>> that have to do similar upgrades to make note of this breaking change and >>>>> include it in the 1.7.0 major release notes where it can be visibly seen. >>>>> >>>>> Best, >>>>> Kevin Lee >>>>> >>>>> >>> >>> -- >>> *Kevin Lee (이지환)* >>> Northwestern University 2020 >>> B.S. in Computer Science >>> www.kevinjihwanlee.com | (773) 647-6146 >>> >> > > -- > *Kevin Lee (이지환)* > Northwestern University 2020 > B.S. in Computer Science > www.kevinjihwanlee.com | (773) 647-6146 >
