Hi @Eduard Lebedyuk / @Alberto Fuentes,

I am trying to use PEX / Java without docker.

So i have a jar containing the FirstOperation class and its all dependencies.

When i configure the object gateway and uses the same it never identifies the JAVA class.

Gives error as below,

Terminating Job 95839 / 'FirstOperation' with Status = ERROR #8104: Gateway Exception: <GATEWAY> java.lang.ClassNotFoundException java.net.URLClassLoader.findClass(URLClassLoader.java:382) workshop.pex.FirstOperation, %QuitTask=

Can you please guide me on, how do it use pex without docker. Why the class Loader can't find the java class within the jar?

I'll really be grateful to you, and wait for your response.



bash-3.2$ docker login

Authenticating with existing credentials...

Login Succeeded

bash-3.2$ docker-compose build

Building jgw

Step 1/9 : FROM openjdk:8 AS builder

---> 9324460525ca

Step 2/9 : ARG APP_HOME=/tmp/app

---> Using cache

---> 89bfa3325c80

Step 3/9 : COPY src $APP_HOME/src

---> Using cache

---> 34b6e7d671c2

Step 4/9 : COPY --from=intersystemscommunity/jgw:latest /jgw/*.jar $APP_HOME/jgw/

ERROR: Service 'jgw' failed to build: invalid from flag value intersystemscommunity/jgw:latest: pull access denied for intersystemscommunity/jgw, repository does not exist or may require 'docker login': denied: requested access to the resource is denied


Seems like 'intersystemscommunity/jgw' is not available anymore. 

Agreed. Default collation for String is SQLUPPER. You can't define the collation of a index if its defined as Unique as below. Below is prohibited, but you can mention any collation on property instead of specifying in Index.

Index ValueIndex On UniqueStringValue As SQLUPPER [ Unique ];

On the other hand, I mentioned another solution to the actual problem above. Please review/comment on that.

Yes, if you have idkey in index, that has to be Exact collation.

But I can tell you one way around it, lets see if you like it. Its tricky though.

Property UniqueStringValue As %String;
Property CopyUniqueStringValue As %String [ SqlComputeCode = { set {CopyUniqueStringValue}={UniqueStringValue}}, SqlComputed, SqlComputeOnChange = UniqueStringValue ];
Index ValueIndex On UniqueStringValue [ IdKey, Unique ];
Index ValueIndex2 On CopyUniqueStringValue As SQLUPPER;

Now, if you do ValueIndex2Exists("hello") or ValueIndex2Exists("Hello") or ValueIndex2Exists("hELLO") you will find match. This will also work on SQL as well if you do - 'Where CopyUniqueStringValue=?'.

This should solve your purpose though, but the space will be duplicated for same index though.