Websphere 9 isn't publishing WSDL as expected - web-services

When opening the webservice URL for verifying it's WSDL, the following property is set as:
<wsdlsoap:address location="https://localhost:443/HR/services/EmployeeInformation" />
But I need it to be set as follows:
<wsdlsoap:address location="https://ipw3e.e.corpintra.net:443/HR/services/EmployeeInformation" />
If I go to Application servers > server_name > Installed applications > app_name > Webservices properties > Provide HTTP endpoint URL information, the URLs are configured as below:
HTTP endpoint URL information
On the path Application servers > server_name > Installed applications > app_name > Webservices properties > Publish WSDL files I can download a zip file that contains de WSDL's correctly configured.
So, the question is: Why Websphere isn't using those WSDL files?
The localhost config comes with the .ear file that development team provides for installing on Websphere. We have another environment running WAS 8 that makes this change automatically and, as far as I know, there is no special configuration made for this.

According to this,
https://www.ibm.com/support/knowledgecenter/en/SSEQTP_9.0.0/com.ibm.websphere.base.doc/ae/uwbs_providehttp.html
there's a jvm prop. you might need to set, com.ibm.ws.webservices.enableHTTPPrefix. Maybe that didn't get carried foward from the 8.x installation.

Related

spring security cookie path

I need help regarding spring security cookie path.
We have 2 web applications running in tomcat, app1 and app2. Both using the same domain, like www.company.com/app1 and www.company.com/app2 . Everything working fine and perfectly in tomcat.
But when we migrate to WebSphere, it started give issue. The issue is when a user login to app1, app2 cookie got overwritten because WebSphere storing the cookie in root path / and both applications using the same domain will overwrite another application cookie. In tomcat it storing in application path like /app1 and /app2 so no problem.
I am able to configure the WebSphere to make it work by configuring the application cookie path. Please see https://serverfault.com/questions/461518/websphere-jsessionid-cookie-overwrite-between-two-apps-on-the-same-domain-diffe for how to configure in WebSphere.
Now my question is, I don’t want to configure this in WebSphere. How can I do this in application level like configure the Spring Security xml or any other place. We want to make this in application level is because it will more portable and behave same in all containers.
I have try to configure the web.xml by adding the following but it not working.
<session-config>
<session-timeout>720</session-timeout>
<cookie-config>
<name>JSESSIONID</name>
<path>/app1</path>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>

Customizing the API Manager URL(s) - Windows

So i'm trying to change the default URL for WSO2 features i.e. Publisher, Carbon, Store from localhost to, lets say, myDomain.com.
I've looked for it in the WSO2 documentation but i keep finding this article over and over again
https://docs.wso2.com/display/AM210/Customize+the+API+Store+and+Gateway+URLs
The problem with this is that it has linux-based (i suppose) commands listed that cannot be applied to windows.
I've also tried to change the host < HostName > and < MGT HostName > tags in the carbon.xml of the WSO2 product but it does not respond and display the page AT ALL! just works with the localhost. thats it
Any ideas or options for the windows end? Thanks
1) Yes, the commands given in the doc are for linux. But what those commands do is installing nginx. So you can ignore those commands, and install nginx in windows.
NGinx configurations given in the doc will be the same for any OS.
2) If you add a hostname to <HostName> and <MGT HostName> tags, you need to have IP to hostname mapping somewhere. I think there is a host file in windows for that.

Where can I find endpoint url for web service?

After creating wsdl file for my web service using java, in the wsdl file soap:address location is set to "REPLACE_WITH_ACTUAL_URL", how can I find the url to replace? ( I am using intellij 12 as IDE and JBOSS AS 4 as server)
If you developing this application then you can use localhost e.g.
<soap:address location="http://localhost:8080/TestWebService/HelloService"/>
where 8080 is JBoss's port
TestWebService is project you are developing
HelloService is wsdl file name or if you have changed mapping in web.xml then change this accordingly.
If you are going to deploy on server then change localhost to IP address of the server.

OpenESB GlassFish - WSDL imports improper location URL.

I am trying to deploy my composite project to production environment which has a domain i.e.
esbservices.mydomain.com
I successfully get WSDL from my domain through this URL... i.e.
esbservices.mydomain.com/myproject/services/myservice?wsdl
However the WSDL document (accessed even through domain) contains imports to other WSDL documents with path of local network/computer.
<definitions targetNamespace="my-integration-composite"><import namespace="http://j2ee.netbeans.org/wsdl/my-integration-services/new-transactions" location="http://my-pc-name.com:9080/my-integration-composite-sun-http-binding/my-integration-services/channel/smsc/inbound/wsdl/new-transactions.wsdl">
</import><import namespace="http://j2ee.netbeans.org/my/wsdl/my-transactions" location="http://my-pc-name.com:9080/my-integration-composite-sun-http-binding/my-integration-services/transaction/common/wsdl/my-transactions.wsdl">
</import><import namespace="http://j2ee.netbeans.org/wsdl/my-integration-services/other-transactions" location="http://my-pc-name.com:9080/my-integration-composite-sun-http-binding/my-integration-services/channel/ivr/inbound/wsdl/other-transactions.wsdl">
</import><portType name="dummyCasaPortType">
</portType>
I want to get rid of this http://my-pc-name.com:9080/ and be able to use http://esbservices.mydomain.com/ instead. because when someone tries to generate web service client from other network, it fails.
In GlassFish ESB v2.2, as in GlassFish ESB v2.1 before it, the name of the host specified in the URL matters. One may get different artifacts generated when specifying “localhost” as the host name, different when specifying FQDN of the host and different when specifying an alias host name (alternative name to FQDN, perhaps specified in the “hosts” file. If the alias refers to 127.0.0.1 artifacts are not generated correctly.
The best policy is to use the FQDN of the host to which the service is deployed. This generates correct artifacts.
GlassFish ESB WS Security Chapter 5

Axis Bottom-up Webservice IWAB0489E error

I am having a look around bottom-up Webservice in Eclipse. Here is my environment:
Eclipse Helios
Java 1.6.0_29
Apache Axis2
Tomcat 6.x
I create Dynamic Web project and create a simple service class. And then I tried to create Webservice for the class, I got some errors like below:
IWAB0489E Error when deploying Web service to Axis runtime
axis-admin failed with {http://schemas.xmlsoap.org/soap/envelope/}Client The service cannot be found for the endpoint reference (EPR) http://localhost:8080/myws/services/AdminService
Searching web, I could not any clear answer yet. Please help me.
Thanks in advance.
I have the same problem i go Window -> Preferences -> WebServices -> Server and Runtime and set it as you see here:
Previously it was selected Tomcat 6 (i use 7) and axis1 not 2
Try these 3 methods
1) try deleting the .snap file found in
yourprojectworkspace\ .metadata\ .plugins\ org.eclipse.core.resources
2) The most common hiccup is when another web server (or any process for that matter) has laid claim to port 8080. This is the default HTTP port that Tomcat attempts to bind to at start-up. To change this, open the file:
$CATALINA_HOME/conf/server.xml
And search for '8080'. Change it to a port that isn't in use, and is greater than 1024, as ports less than or equal to 1024 require superuser access to bind under UNIX. (Example 8181)
Restart Tomcat and you're in business. Be sure that you replace the "8080" in the URL you're using to access Tomcat. For example, if you change the port to 8181, you would request the URL http://localhost:8181/ in your browser.
3) Open the bin folder which contains the shutdown.bat file residing inside the tomcat directory. Run it, that should solve the port problem.