Похоже, что была проблема в моем файле portlet.xml, где у меня было следующее:
<portlet>
<portlet-name>helloWorld</portlet-name>
<portlet-class>
org.springframework.web.portlet.DispatcherPortlet
</portlet-class>
...
</portlet>
Между тегами было несколько вкладок, и когда я удалил пробел, они выглядели так:
<portlet>
<portlet-name>helloWorld</portlet-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
...
</portlet>
Это сработало! Какая раздражающая проблема, я предположил, что контейнер портлета сможет прочитать имя класса и удалить любые пробелы, но, очевидно, нет: (