Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

Web Service in Sneak Preview SP15 gives NoSuchFieldError: _typeRegistry

Hi,

I've been trying to create a WebDynpro application which should access a simple webservice. To ensure that the webservice actually works, I have successfully contacted it and sent a request with a successful response to it using WSNavigator.

All this is running on the Full Java Sneak Preview SP15 and being developed in NWDS SP15.

What I've done is:

- Create model using url

- Link request in context from model to component

- Link request in context from component to view

The context (of both the component and the view) is strucured as follows:

Context
- Request_UserSessionSoap_login
-- in
--- username
--- password
- Response
-- Result

The init of the component I have set up as follows:

    Request_UserSessionSoap_login login = new Request_UserSessionSoap_login();
    
    ComplexType_LoginRequestInDef loginRequest = new ComplexType_LoginRequestInDef();
    loginRequest.setUsername("someuser");
    loginRequest.setPassword("somepass");
    login.setIn(loginRequest);
    wdContext.nodeRequest_UserSessionSoap_login().bind(login);

I have then created a method 'login' in the component, which is called in the eventhandler to a button on the view.

The login method is as follows:

    try {
    	wdContext.currentRequest_UserSessionSoap_loginElement().modelObject().execute();
    	wdContext.nodeResponse().invalidate();
    } catch(Exception e) {
    	wdComponentAPI.getMessageManager().reportWarning("ARGH!! " + e.getMessage());
    }

When I try running the application and clicking the button I get the 'NoSuchFieldError: _typeRegistry' message in my tracelog.

As far as I know, my there is no errors in my approach, nor my code.

So, examining the generated code, I find where typeRegistry is set. It is in a class extends the abstract class com.sap.engine.services.webservices.jaxrpc.wsdl2java.ServiceBase. The abstract class rightly has the field 'typeRegistry'. So all is good... Just to test something I try inserting the line

private TypeMappingRegistryImpl _typeRegistry;

in the generated class, so that calls to _typeRegistry are directed at the local member.

Trying this approach (which is bound to mess everything up eventually) it seems like the code runs a little further before crashing, and I end up with the following exception in my tracelog: SAPNoClassDefFoundError: com/sap/engine/services/webservices/jaxrpc/wsdl2java/dynamic/DynamicInterface

And I've tried searching for this class but have not been able to find it anywhere. I do not think that really matters, because the first exception should never have happend in the first place.

So, all in all I am now at my wits end. I do not know what else to do than ask you people for guidance.

Thanks in advance,

developer-in-distress Rune J.

Not what you were looking for? View more on this topic or Ask a question